{"version":3,"file":"energycap-energycap-sdk-angular.mjs","sources":["../../variables.ts","../../configuration.ts","../../api/account.service.ts","../../api/accountDigest.service.ts","../../api/accountMeter.service.ts","../../api/accrual.service.ts","../../api/activity.service.ts","../../api/admin.service.ts","../../api/api.service.ts","../../api/apiKey.service.ts","../../api/audit.service.ts","../../api/authentication.service.ts","../../api/batch.service.ts","../../api/bill.service.ts","../../api/billAccountChargeSplit.service.ts","../../api/billSplit.service.ts","../../api/billView.service.ts","../../api/budget.service.ts","../../api/calculatedBill.service.ts","../../api/channel.service.ts","../../api/chargebackEngine.service.ts","../../api/chargebackTask.service.ts","../../api/chargebackWorkflow.service.ts","../../api/collection.service.ts","../../api/commodity.service.ts","../../api/commodityCategory.service.ts","../../api/commodityDigest.service.ts","../../api/costCategory.service.ts","../../api/costCenter.service.ts","../../api/costCenterDigest.service.ts","../../api/country.service.ts","../../api/customer.service.ts","../../api/dashboard.service.ts","../../api/dataPoint.service.ts","../../api/emissionRecord.service.ts","../../api/emissionSource.service.ts","../../api/energyManager.service.ts","../../api/energyProject.service.ts","../../api/energyStar.service.ts","../../api/environment.service.ts","../../api/esaChannel.service.ts","../../api/esaPlace.service.ts","../../api/esaReading.service.ts","../../api/export.service.ts","../../api/fileStore.service.ts","../../api/filter.service.ts","../../api/flag.service.ts","../../api/formula.service.ts","../../api/gHG.service.ts","../../api/generalLedger.service.ts","../../api/hierarchy.service.ts","../../api/import.service.ts","../../api/list.service.ts","../../api/me.service.ts","../../api/meter.service.ts","../../api/meterDigest.service.ts","../../api/meterGroup.service.ts","../../api/meterGroupDigest.service.ts","../../api/notification.service.ts","../../api/observation.service.ts","../../api/observationType.service.ts","../../api/place.service.ts","../../api/placeBenchmark.service.ts","../../api/placeDigest.service.ts","../../api/placeGroup.service.ts","../../api/placeGroupDigest.service.ts","../../api/postalCode.service.ts","../../api/primaryUse.service.ts","../../api/rate.service.ts","../../api/rateDigest.service.ts","../../api/report.service.ts","../../api/reportBuilder.service.ts","../../api/reportDistribution.service.ts","../../api/route.service.ts","../../api/savings.service.ts","../../api/schedule.service.ts","../../api/search.service.ts","../../api/sentinel.service.ts","../../api/setup.service.ts","../../api/summaryAccount.service.ts","../../api/systemUser.service.ts","../../api/tag.service.ts","../../api/task.service.ts","../../api/template.service.ts","../../api/timeZone.service.ts","../../api/uDF.service.ts","../../api/unit.service.ts","../../api/userGroup.service.ts","../../api/userRole.service.ts","../../api/utilityPlatform.service.ts","../../api/vendor.service.ts","../../api/vendorDigest.service.ts","../../api/weatherStation.service.ts","../../api/webCaptureCredential.service.ts","../../api/webhook.service.ts","../../api/widget.service.ts","../../api/workflow.service.ts","../../api/spanClasspropertyinfoPaginatedPaginatedspan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsAccountingSettingsManagespan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsAccountsCreatespan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsAccountsDeletespan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsAccountsEditspan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsAccountsViewspan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsAccrualSettingsManagespan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsAccrualSettingsRunspan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsAccrualSettingsViewspan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsApplicationSettingsManagespan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsApplicationSettingsViewspan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsApproveBillsManagespan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsBaselineEngineRunspan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsBillCAPtureViewspan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsBillWorkflowSettingsManagespan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsBillWorkflowSettingsViewspan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsBillsAndBatchesCreatespan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsBillsAndBatchesDeletespan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsBillsAndBatchesEditspan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsBillsAndBatchesManagespan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsBillsAndBatchesViewspan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsBudgetsAndBudgetVersionsCreatespan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsBudgetsAndBudgetVersionsDeletespan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsBudgetsAndBudgetVersionsEditspan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsBudgetsAndBudgetVersionsViewspan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsBuildingAndMeterGroupsCreatespan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsBuildingAndMeterGroupsDeletespan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsBuildingAndMeterGroupsEditspan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsBuildingsAndOrganizationsCreatespan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsBuildingsAndOrganizationsDeletespan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsBuildingsAndOrganizationsEditspan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsBuildingsAndOrganizationsViewspan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsChargebackReversalsManagespan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsChargebacksManagespan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsChargebacksModuleViewspan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsChargebacksRunspan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsCollectionsCreatespan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsCollectionsDeletespan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsCollectionsEditspan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsCollectionsViewspan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsCostCentersCreatespan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsCostCentersDeletespan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsCostCentersEditspan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsCostCentersViewspan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsDashboardAndMapsModuleViewspan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsDistributedReportsSettingsManagespan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsENERGYSTARSubmissionsManagespan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsENERGYSTARSubmissionsRunspan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsEmissionsSourcesCreatespan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsEmissionsSourcesDeletespan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsEmissionsSourcesEditspan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsEmissionsSourcesViewspan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsEnergyManagerModuleViewspan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsExportBillsRunspan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsExportHoldManagespan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsFacilityProjectsCreatespan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsFacilityProjectsDeletespan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsFacilityProjectsEditspan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsFlaggedItemsManagespan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsFlaggedItemsViewspan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsGlobalCostAvoidanceSettingsManagespan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsGlobalCostAvoidanceSettingsViewspan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsGroupsAndBenchmarksModuleViewspan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsIntervalDataManagespan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsLicenseFeatureIntervalDataAnalysisViewspan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsManuallyAdjustSavingsManagespan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsMeterSavingsSettingsManagespan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsMeterSavingsSettingsViewspan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsMetersCreatespan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsMetersDeletespan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsMetersEditspan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsMetersViewspan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsMoveAccountsBetweenVendorsManagespan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsMoveExistingBillsManagespan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsPublicDashboardsOrMapsManagespan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsRateSchedulesCreatespan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsRateSchedulesDeletespan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsRateSchedulesEditspan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsRecordsCreatespan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsRecordsDeletespan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsRecordsEditspan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsRecordsViewspan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsReportAdministratorManagespan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsReportGroupsManagespan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsReportsRunspan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsRolesManagespan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsSavingsAdjustmentsManagespan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsSavingsAdjustmentsViewspan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsSavingsEngineRunspan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsUnitSystemSettingsManagespan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsUsersAndUserGroupsManagespan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsUsersAndUserGroupsViewspan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsVendorsAndRatesModuleViewspan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsVendorsCreatespan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsVendorsDeletespan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsVendorsEditspan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsWeatherSettingsManagespan.service.ts","../../api/spanClasspropertyinfoPermissionPermissionsWeatherSettingsViewspan.service.ts","../../api/api.ts","../../model/abnormalBillCostWithOutlierAnalysisSettingRequest.ts","../../model/abnormalBillCostWithOutlierAnalysisSettingResponse.ts","../../model/abnormalBillDemandWithOutlierAnalysisSettingRequest.ts","../../model/abnormalBillDemandWithOutlierAnalysisSettingResponse.ts","../../model/abnormalBillUseWithOutlierAnalysisSettingRequest.ts","../../model/abnormalBillUseWithOutlierAnalysisSettingResponse.ts","../../model/accountAlertRequest.ts","../../model/accountAlertResponse.ts","../../model/accountAuditEnable.ts","../../model/accountAuditSettingsRequest.ts","../../model/accountAuditSettingsResponse.ts","../../model/accountBillAccountChargeSplitSettingsResponse.ts","../../model/accountChild.ts","../../model/accountChildWithType.ts","../../model/accountCodeHistoryChild.ts","../../model/accountCodeHistoryRequest.ts","../../model/accountCodeHistoryResponse.ts","../../model/accountConnectionStatusResponse.ts","../../model/accountCreate.ts","../../model/accountDigestActualMonthlyResponse.ts","../../model/accountDigestActualMonthlyResponseCommodityData.ts","../../model/accountDigestActualMonthlyResponseCommodityResults.ts","../../model/accountDigestActualMonthlyResponseResults.ts","../../model/accountDigestActualYearlyResponse.ts","../../model/accountDigestActualYearlyResponseCommodityData.ts","../../model/accountDigestActualYearlyResponseCommodityResults.ts","../../model/accountDigestActualYearlyResponseResults.ts","../../model/accountEdit.ts","../../model/accountMeterChild.ts","../../model/accountMeterChildWithSerialNumber.ts","../../model/accountMeterEdit.ts","../../model/accountMeterRateResponse.ts","../../model/accountMeterRequest.ts","../../model/accountMeterResponse.ts","../../model/accountOrMeterUsage.ts","../../model/accountPeriodRequest.ts","../../model/accountPeriodResponse.ts","../../model/accountRateChild.ts","../../model/accountRateRequest.ts","../../model/accountRateResponse.ts","../../model/accountResponse.ts","../../model/accountTemplateResponse.ts","../../model/accountTypeChild.ts","../../model/accountUDFResponse.ts","../../model/accountingSettings.ts","../../model/accountingSettingsClassPermission.ts","../../model/accountingSettingsRequest.ts","../../model/accountingSettingsResponse.ts","../../model/accounts.ts","../../model/accountsClassPermission.ts","../../model/accountsModule.ts","../../model/accountsModuleActualData.ts","../../model/accountsModuleActualDataClassPermission.ts","../../model/accountsModuleClassPermission.ts","../../model/accrualProcessorRequest.ts","../../model/accrualSettings.ts","../../model/accrualSettingsClassPermission.ts","../../model/accrualSettingsResponse.ts","../../model/actionableBillCounts.ts","../../model/activity.ts","../../model/actualVsBudgetResponse.ts","../../model/addressChild.ts","../../model/addressChildBase.ts","../../model/addressLookup.ts","../../model/adjustedCostTypeResponse.ts","../../model/adjustmentBaseMethodChild.ts","../../model/adminSettingsRequest.ts","../../model/adminSettingsResponse.ts","../../model/aggregatedComparisonResponseGHGPerformanceComparison.ts","../../model/aggregatedItemRankResponse.ts","../../model/aggregatedMonthlyCAPTrendResponse.ts","../../model/aggregatedResponseGHGBuildingRank.ts","../../model/aggregatedResponseItemRankWithUnitResponse.ts","../../model/allInstalledReports.ts","../../model/allInstalledReportsClassPermission.ts","../../model/apiKeyCreateRequest.ts","../../model/apiKeyCreateResponse.ts","../../model/apiKeyEditRequest.ts","../../model/apiKeyResponse.ts","../../model/apiUser.ts","../../model/applicationSettings.ts","../../model/applicationSettingsClassPermission.ts","../../model/approvalWorkflowChild.ts","../../model/approvalWorkflowRequestChild.ts","../../model/approvalWorkflowSettings.ts","../../model/approveBills.ts","../../model/approveBillsClassPermission.ts","../../model/arcadiaAccount.ts","../../model/arcadiaAccountCustomData.ts","../../model/arcadiaProvider.ts","../../model/areaNormalizedResponse.ts","../../model/assignVersionsToStep.ts","../../model/aucRangeRequest.ts","../../model/aucRangeResponse.ts","../../model/auditSettingRequest.ts","../../model/auditSettingResponse.ts","../../model/auditSettingsRequest.ts","../../model/auditSettingsResponse.ts","../../model/baselineEngine.ts","../../model/baselineEngineClassPermission.ts","../../model/baselineLog.ts","../../model/baselineProcessorRequest.ts","../../model/baselineProcessorRequestBaselineBill.ts","../../model/baselineProcessorResponse.ts","../../model/baselineProcessorResponseBaselineBill.ts","../../model/batchChild.ts","../../model/batchCreate.ts","../../model/batchEdit.ts","../../model/batchLogResponse.ts","../../model/batchResponse.ts","../../model/batchSettings.ts","../../model/batchWorkflowChild.ts","../../model/batchWorkflowSettings.ts","../../model/benchmarkCategoryResponse.ts","../../model/benchmarkEdit.ts","../../model/benchmarkSettingsEdit.ts","../../model/benchmarkSettingsResponse.ts","../../model/benchmarkValue.ts","../../model/benchmarkValueRequest.ts","../../model/benchmarkValuesResponse.ts","../../model/benchmarkWithUsedCountResponse.ts","../../model/billAccountBodyLineCreate.ts","../../model/billAccountBodyLineEdit.ts","../../model/billAccountChargeSplitMethodRequest.ts","../../model/billAccountChargeSplitMethodResponse.ts","../../model/billAccountChargeSplitSettingResponse.ts","../../model/billAccountChargeSplitSettingsResponse.ts","../../model/billAccountMeterChild.ts","../../model/billAccountMeterResponse.ts","../../model/billAccountMeterStatisticsResponse.ts","../../model/billAccrualExclusionRequest.ts","../../model/billActionApprove.ts","../../model/billActionCustom.ts","../../model/billActionDelete.ts","../../model/billActionExportHold.ts","../../model/billActionHeaderUpdate.ts","../../model/billActionHistoricalExport.ts","../../model/billActionMove.ts","../../model/billActionMoveList.ts","../../model/billActionSplit.ts","../../model/billActionVoid.ts","../../model/billCAPture.ts","../../model/billCAPtureClassPermission.ts","../../model/billCalendarizedHistory.ts","../../model/billContainsLineItemDescriptionsSettingRequest.ts","../../model/billContainsLineItemDescriptionsSettingResponse.ts","../../model/billContainsLineItemTypesSettingRequest.ts","../../model/billContainsLineItemTypesSettingResponse.ts","../../model/billCreate.ts","../../model/billDeleteActionResult.ts","../../model/billEdit.ts","../../model/billEntryBodyLine.ts","../../model/billEntryBodyLineChild.ts","../../model/billEntryBodyLineWithNounChild.ts","../../model/billEntryMeterChild.ts","../../model/billEntryObservationTypeChild.ts","../../model/billEntryResponse.ts","../../model/billExport.ts","../../model/billExportOptions.ts","../../model/billHeaderChild.ts","../../model/billHeaderUpdate.ts","../../model/billHeaderUpdateAccountPeriodChild.ts","../../model/billHeaderUpdateBeginDateChild.ts","../../model/billHeaderUpdateBillingPeriodChild.ts","../../model/billHeaderUpdateControlCodeChild.ts","../../model/billHeaderUpdateDueDateChild.ts","../../model/billHeaderUpdateEndDateChild.ts","../../model/billHeaderUpdateEstimatedChild.ts","../../model/billHeaderUpdateInvoiceNumberChild.ts","../../model/billHeaderUpdateStatementDateChild.ts","../../model/billHeaderWorkflowChild.ts","../../model/billHistoryResponse.ts","../../model/billIdResponse.ts","../../model/billImportKickoutDetailsResponse.ts","../../model/billImportProfileColumnMapping.ts","../../model/billImportProfileObservation.ts","../../model/billImportProfileRequest.ts","../../model/billImportProfileResponse.ts","../../model/billImportRequest.ts","../../model/billImportTaskKickoutSummaryResponse.ts","../../model/billImportWorkflowSettings.ts","../../model/billKickoutImportRequest.ts","../../model/billLineTypeMappingResponse.ts","../../model/billListAdministrator.ts","../../model/billListAdministratorClassPermission.ts","../../model/billMeterBodyLineCreate.ts","../../model/billMeterBodyLineEdit.ts","../../model/billMeterCreate.ts","../../model/billMeterEdit.ts","../../model/billPaymentDetailsFileResponse.ts","../../model/billPaymentDetailsOptionalItem.ts","../../model/billPaymentDetailsOptionalItemWithErrors.ts","../../model/billPaymentDetailsOptionalResponse.ts","../../model/billPaymentEventCreate.ts","../../model/billPaymentEventResponse.ts","../../model/billResponse.ts","../../model/billReversal.ts","../../model/billReversalRequest.ts","../../model/billSignificantlyShorterOrLongerThanPreviousSettingRequest.ts","../../model/billSignificantlyShorterOrLongerThanPreviousSettingResponse.ts","../../model/billSplitDetailsRequest.ts","../../model/billSplitDetailsResponse.ts","../../model/billSplitParentDetailsResponse.ts","../../model/billSplitPlaceSizeChild.ts","../../model/billUnexport.ts","../../model/billUnexportOptions.ts","../../model/billUsage.ts","../../model/billViewAccountChild.ts","../../model/billViewAddressChild.ts","../../model/billViewMeterChild.ts","../../model/billViewResponse.ts","../../model/billViewVendorChild.ts","../../model/billWorkflowSettings.ts","../../model/billWorkflowSettingsClassPermission.ts","../../model/billingPeriodCostUnitChild.ts","../../model/billingPeriodCostUnitDeltaChild.ts","../../model/billingPeriodUseCostChild.ts","../../model/billingPeriodUseCostDeltaChild.ts","../../model/billingPeriodUseUnitChild.ts","../../model/billingPeriodUseUnitDeltaChild.ts","../../model/billsAndBatches.ts","../../model/billsAndBatchesClassPermission.ts","../../model/billsModule.ts","../../model/billsModuleClassPermission.ts","../../model/billsOverdueFromVendorResponse.ts","../../model/bodylineChild.ts","../../model/bodylineResponse.ts","../../model/budgetCreate.ts","../../model/budgetDataType.ts","../../model/budgetEdit.ts","../../model/budgetPeriodType.ts","../../model/budgetResponse.ts","../../model/budgetUsageMethod.ts","../../model/budgetVersionCreate.ts","../../model/budgetVersionEdit.ts","../../model/budgetVersionResponse.ts","../../model/budgetVersionSummary.ts","../../model/budgetVersionSummaryResponse.ts","../../model/budgetsAndBudgetVersions.ts","../../model/budgetsAndBudgetVersionsClassPermission.ts","../../model/buildingAndMeterGroups.ts","../../model/buildingAndMeterGroupsClassPermission.ts","../../model/buildingsAndMetersModule.ts","../../model/buildingsAndMetersModuleActualData.ts","../../model/buildingsAndMetersModuleActualDataClassPermission.ts","../../model/buildingsAndMetersModuleBudgets.ts","../../model/buildingsAndMetersModuleBudgetsClassPermission.ts","../../model/buildingsAndMetersModuleCalendarizedData.ts","../../model/buildingsAndMetersModuleCalendarizedDataClassPermission.ts","../../model/buildingsAndMetersModuleClassPermission.ts","../../model/buildingsAndMetersModuleMeterIntervalData.ts","../../model/buildingsAndMetersModuleMeterIntervalDataClassPermission.ts","../../model/buildingsAndMetersModuleNormalizedData.ts","../../model/buildingsAndMetersModuleNormalizedDataClassPermission.ts","../../model/buildingsAndMetersModuleSavings.ts","../../model/buildingsAndMetersModuleSavingsClassPermission.ts","../../model/buildingsAndMetersModuleSustainability.ts","../../model/buildingsAndMetersModuleSustainabilityClassPermission.ts","../../model/buildingsAndOrganizations.ts","../../model/buildingsAndOrganizationsClassPermission.ts","../../model/bulkBaselineProcessorRequest.ts","../../model/bulkImportArcadiaCredentialRequest.ts","../../model/bulkImportArcadiaCredentialsResponse.ts","../../model/bulkMeterCostAvoidanceSettings.ts","../../model/calculateSavingsRequest.ts","../../model/calculatedBillCostRequest.ts","../../model/calculatedBillCostResponse.ts","../../model/calculatedBillDemandRequest.ts","../../model/calculatedBillDemandResponse.ts","../../model/calculatedBillDetailsResponse.ts","../../model/calculatedBillUseRequest.ts","../../model/calculatedBillUseResponse.ts","../../model/calculationRequest.ts","../../model/calculationResponse.ts","../../model/calendarizedCalculationRequest.ts","../../model/calendarizedCalculationResponse.ts","../../model/calendarizedSumRequest.ts","../../model/cancellationToken.ts","../../model/channelChild.ts","../../model/channelChildWithObservationType.ts","../../model/channelCreate.ts","../../model/channelEdit.ts","../../model/channelLatestReading.ts","../../model/channelResponse.ts","../../model/channelVersionRequest.ts","../../model/channelVersionResponse.ts","../../model/channelVersionWithBeginDateRequest.ts","../../model/chargebackProcessorSettings.ts","../../model/chargebackProcessorSettingsForAggregations.ts","../../model/chargebackProcessorSettingsForSplits.ts","../../model/chargebackProcessorSettingsWithoutFilters.ts","../../model/chargebackReversals.ts","../../model/chargebackReversalsClassPermission.ts","../../model/chargebackTaskRequest.ts","../../model/chargebackTaskResponse.ts","../../model/chargebackTaskVersionResponse.ts","../../model/chargebackWorkflowBase.ts","../../model/chargebackWorkflowCreate.ts","../../model/chargebackWorkflowDigestChild.ts","../../model/chargebackWorkflowDigestResponse.ts","../../model/chargebackWorkflowDigestSplitChild.ts","../../model/chargebackWorkflowEdit.ts","../../model/chargebackWorkflowResponse.ts","../../model/chargebackWorkflowSettings.ts","../../model/chargebackWorkflowStep.ts","../../model/chargebackWorkflowStepChild.ts","../../model/chargebackWorkflowStepCreate.ts","../../model/chargebackWorkflowStepEdit.ts","../../model/chargebacks.ts","../../model/chargebacksClassPermission.ts","../../model/chargebacksModule.ts","../../model/chargebacksModuleClassPermission.ts","../../model/claim.ts","../../model/collectionChild.ts","../../model/collectionEmissionSourceChild.ts","../../model/collectionRequest.ts","../../model/collectionResponse.ts","../../model/collections.ts","../../model/collectionsClassPermission.ts","../../model/columnNumberOrOverrideValueNullableInt32.ts","../../model/columnNumberOrOverrideValueString.ts","../../model/commodityCategory.ts","../../model/commodityCategoryChild.ts","../../model/commodityCategoryRequest.ts","../../model/commodityCategoryResponse.ts","../../model/commodityChild.ts","../../model/commodityChildWithCategory.ts","../../model/commodityDigestActualYearlyResponse.ts","../../model/commodityDigestActualYearlyResponseCommodityData.ts","../../model/commodityDigestActualYearlyResponseCommodityResults.ts","../../model/commodityDigestActualYearlyResponseResults.ts","../../model/commodityEditRequest.ts","../../model/commodityRequest.ts","../../model/commodityResponse.ts","../../model/commoditySkipAuditSettingRequest.ts","../../model/commoditySkipAuditSettingResponse.ts","../../model/commodityValueComparison.ts","../../model/contactChild.ts","../../model/copyFromMeterResponse.ts","../../model/copyMeterRequest.ts","../../model/costAvoidanceSettings.ts","../../model/costAvoidanceTask.ts","../../model/costCategoryEdit.ts","../../model/costCategoryResponse.ts","../../model/costCenterAccountChild.ts","../../model/costCenterChild.ts","../../model/costCenterCreate.ts","../../model/costCenterDigestActualMonthlyResponse.ts","../../model/costCenterDigestActualMonthlyResponseCommodityData.ts","../../model/costCenterDigestActualMonthlyResponseCommodityResults.ts","../../model/costCenterDigestActualMonthlyResponseResults.ts","../../model/costCenterDigestActualYearlyResponse.ts","../../model/costCenterDigestActualYearlyResponseCommodityData.ts","../../model/costCenterDigestActualYearlyResponseCommodityResults.ts","../../model/costCenterDigestActualYearlyResponseResults.ts","../../model/costCenterResponse.ts","../../model/costCenters.ts","../../model/costCentersClassPermission.ts","../../model/costConversion.ts","../../model/costConversionBase.ts","../../model/costSavingsChild.ts","../../model/costSavingsUnit.ts","../../model/country.ts","../../model/createTemplateFromBill.ts","../../model/createUtilityPlatformMeter.ts","../../model/customerChild.ts","../../model/customerResponse.ts","../../model/dashboardAdministrator.ts","../../model/dashboardAdministratorClassPermission.ts","../../model/dashboardAndMapsModule.ts","../../model/dashboardAndMapsModuleClassPermission.ts","../../model/dashboardCopy.ts","../../model/dashboardCreate.ts","../../model/dashboardEdit.ts","../../model/dashboardGlobalSettings.ts","../../model/dashboardGlobalSettingsEdit.ts","../../model/dashboardResponse.ts","../../model/dataAccessRelease.ts","../../model/dataAccessReleaseMetaData.ts","../../model/dataAccessReleaseNoFileRequest.ts","../../model/dataAccessReleaseRequest.ts","../../model/dataAccessReleaseState.ts","../../model/dataAccessReleaseStatus.ts","../../model/dataPointChild.ts","../../model/dataPointChildWithParentAndImportId.ts","../../model/dataPointCreate.ts","../../model/dataPointEdit.ts","../../model/dataPointResponse.ts","../../model/dataPointSentinel.ts","../../model/dataTypeResponse.ts","../../model/dateRange.ts","../../model/dayOfWeek.ts","../../model/deleteReadingResponse.ts","../../model/destinationAccountMeterChild.ts","../../model/destinationAccountResponse.ts","../../model/detailedGuidResponse.ts","../../model/distributeAccountChargesBase.ts","../../model/distributeAccountChargesToBillsRequest.ts","../../model/distributedReportsConfiguration.ts","../../model/distributedReportsSettings.ts","../../model/distributedReportsSettingsClassPermission.ts","../../model/distributionVersionManage.ts","../../model/distributionVersionResponse.ts","../../model/dueDateTooLongAfterBillEndSettingRequest.ts","../../model/dueDateTooLongAfterBillEndSettingResponse.ts","../../model/dynamicListRequest.ts","../../model/dynamicPercentageBillSplit.ts","../../model/dynamicPercentageBillSplitResponse.ts","../../model/eNERGYSTARSubmissions.ts","../../model/eNERGYSTARSubmissionsClassPermission.ts","../../model/editEsaPlaceSizesRequest.ts","../../model/emailProperties.ts","../../model/emissionRecordRequest.ts","../../model/emissionRecordResponse.ts","../../model/emissionRecordType.ts","../../model/emissionSourceChild.ts","../../model/emissionSourceCreate.ts","../../model/emissionSourceEdit.ts","../../model/emissionSourceFactorCategoryBulkUpdate.ts","../../model/emissionSourceLink.ts","../../model/emissionSourceLinkRequest.ts","../../model/emissionSourceMultiFactorCreate.ts","../../model/emissionSourceMultiFactorEdit.ts","../../model/emissionSourceMultiFactorResponse.ts","../../model/emissionSourceResponse.ts","../../model/emissionsSources.ts","../../model/emissionsSourcesClassPermission.ts","../../model/emissionsSourcesModule.ts","../../model/emissionsSourcesModuleClassPermission.ts","../../model/energyCapOptionsEnergyCapIDOptions.ts","../../model/energyManagerModule.ts","../../model/energyManagerModuleClassPermission.ts","../../model/energyProjectCreate.ts","../../model/energyProjectEdit.ts","../../model/energyProjectPlaceChild.ts","../../model/energyProjectResponse.ts","../../model/energyProjectType.ts","../../model/energyProjectTypeCreate.ts","../../model/energySavingsChild.ts","../../model/energySavingsUnit.ts","../../model/energyStarCommodityLinkChild.ts","../../model/energyStarCommodityLinkRequest.ts","../../model/energyStarCommodityMeterTypeMapping.ts","../../model/energyStarCommodityMeterTypeMappingChild.ts","../../model/energyStarMeterLinkChild.ts","../../model/energyStarMeterLinkRequest.ts","../../model/energyStarPlaceHierarchyResponse.ts","../../model/energyStarPlaceLinkRequest.ts","../../model/energyStarPlaceLinkResponse.ts","../../model/energyStarPlaceMetricsRequest.ts","../../model/energyStarPlaceMetricsResponse.ts","../../model/energyStarPlaceSubmissionStatusChild.ts","../../model/energyStarPlaceSubmissionStatusResponse.ts","../../model/energyStarPmMeter.ts","../../model/energyStarPmProperty.ts","../../model/energyStarRatingChild.ts","../../model/energyStarSettings.ts","../../model/energyStarSettingsRequest.ts","../../model/energyStarSettingsResponse.ts","../../model/energyStarSubmissionPlaceChild.ts","../../model/energyStarSubmissionRequest.ts","../../model/energyStarTaskPlaceChild.ts","../../model/energyStarTaskResponse.ts","../../model/entityScheduleSummary.ts","../../model/environment.ts","../../model/esaChannelChild.ts","../../model/esaChannelChildWithObservationType.ts","../../model/esaChannelCreate.ts","../../model/esaChannelEdit.ts","../../model/esaChannelResponse.ts","../../model/esaChannelVersionCreate.ts","../../model/esaChannelVersionCreateWithBeginDate.ts","../../model/esaChannelVersionEdit.ts","../../model/esaChannelVersionResponse.ts","../../model/esaDeleteReadingResponse.ts","../../model/esaDeleteReadingSummarizedResponse.ts","../../model/esaIntervalDataOverlay.ts","../../model/esaIntervalDataResponse.ts","../../model/esaPlaceCreate.ts","../../model/esaPlaceDataRollupRequest.ts","../../model/esaPlaceEdit.ts","../../model/esaPlaceResponse.ts","../../model/esaPlaceSizeCreate.ts","../../model/esaReadingCreate.ts","../../model/esaReadingCreateError.ts","../../model/esaReadingCreateResponse.ts","../../model/esaReadingDelete.ts","../../model/esaReadingImportProfile.ts","../../model/esaReadingImportProfileColumn.ts","../../model/esaReadingImportProfileCreate.ts","../../model/esaReadingImportProfileEdit.ts","../../model/esaReadingImportProfileResponse.ts","../../model/esaReadingImportRequest.ts","../../model/esaReadingResponse.ts","../../model/esaReadingSummarizedDelete.ts","../../model/esaReadingSummarizedResponse.ts","../../model/esaReadingValue.ts","../../model/esaReadingValueError.ts","../../model/esaSentinelPrediction.ts","../../model/esaSentinelPredictionRequest.ts","../../model/esaSentinelPredictionResponse.ts","../../model/esaSentinelPredictionsResponse.ts","../../model/estimated.ts","../../model/exportBills.ts","../../model/exportBillsClassPermission.ts","../../model/exportFormatChild.ts","../../model/exportHold.ts","../../model/exportHoldClassPermission.ts","../../model/exportWorkflowChild.ts","../../model/exportWorkflowSettings.ts","../../model/facilityProjects.ts","../../model/facilityProjectsClassPermission.ts","../../model/failedReadingResponse.ts","../../model/failedReadings.ts","../../model/fileDataTypeResponse.ts","../../model/filterDataResponse.ts","../../model/filterEdit.ts","../../model/filterResponse.ts","../../model/fixedAmountResponse.ts","../../model/fixedDemandRequest.ts","../../model/fixedPercentage.ts","../../model/fixedPercentageResponse.ts","../../model/fixedUnitCostRequest.ts","../../model/fixedUseRequest.ts","../../model/flagActionChild.ts","../../model/flagEdit.ts","../../model/flagEventChild.ts","../../model/flagIssueActionChild.ts","../../model/flagIssueEdit.ts","../../model/flagIssueEditAction.ts","../../model/flagIssueEventChild.ts","../../model/flagIssueListAction.ts","../../model/flagIssueResponse.ts","../../model/flagIssueStatusChild.ts","../../model/flagIssueTypeChild.ts","../../model/flagListAction.ts","../../model/flagResponse.ts","../../model/flagStatusChild.ts","../../model/flagTypeChild.ts","../../model/flagTypeCreate.ts","../../model/flagWidget.ts","../../model/flagWidgetChild.ts","../../model/flaggedItems.ts","../../model/flaggedItemsClassPermission.ts","../../model/floorAreaSplit.ts","../../model/floorAreaSplitResponse.ts","../../model/formTemplateChild.ts","../../model/formTemplateRequest.ts","../../model/formTemplateResponse.ts","../../model/formulaValidationRequest.ts","../../model/formulaValidationResponse.ts","../../model/frequency.ts","../../model/gHGBuildingRank.ts","../../model/gHGCarbonFootprintResponse.ts","../../model/gHGDefaultFactor.ts","../../model/gHGFactor.ts","../../model/gHGFactorCategory.ts","../../model/gHGFactorChild.ts","../../model/gHGFactorRegion.ts","../../model/gHGFactorResponse.ts","../../model/gHGFactorVersionHistoryResponse.ts","../../model/gHGFactorsResponse.ts","../../model/gHGGas.ts","../../model/gHGGroupEmissions.ts","../../model/gHGPerformanceComparison.ts","../../model/gHGScope.ts","../../model/gHGScopeCategory.ts","../../model/gHGScopeCategoryChild.ts","../../model/gHGScopeResponse.ts","../../model/gHGSettingResponse.ts","../../model/gHGSettings.ts","../../model/gHGTargetEmissions.ts","../../model/gHGTypeChild.ts","../../model/gHGVersion.ts","../../model/gHGYearlyEmissions.ts","../../model/gHGasDefaultSettingRequest.ts","../../model/gHGasDefaultSettingRequestCommodityChild.ts","../../model/gHGasDefaultSettingRequestScopeCategoryAndFactorChild.ts","../../model/gHGasDefaultSettingResponse.ts","../../model/gHGasDefaultSettingResponseCommodityChild.ts","../../model/gHGasFactorAndScopeCategoryPair.ts","../../model/gHGasFactorAndScopeCategoryPairCreate.ts","../../model/gHGasFactorChild.ts","../../model/gHGasScopeCategoryChild.ts","../../model/gLSubCodeChild.ts","../../model/gLSubCodeChildRequest.ts","../../model/gLSubcodeRequest.ts","../../model/gLSubcodeResponse.ts","../../model/generalLedgerChild.ts","../../model/generalLedgerRequest.ts","../../model/generalLedgerResponse.ts","../../model/genericBodylineRequest.ts","../../model/genericBodylineResponse.ts","../../model/genericCount.ts","../../model/globalCostAvoidanceSettings.ts","../../model/globalCostAvoidanceSettingsClassPermission.ts","../../model/greenhouseGasAdministrator.ts","../../model/greenhouseGasAdministratorClassPermission.ts","../../model/groupDisplaySetting.ts","../../model/groupMemberRequest.ts","../../model/groupMeterGroupResponse.ts","../../model/groupPlaceGroupMember.ts","../../model/groupPlaceGroupResponse.ts","../../model/groupsAndBenchmarksModule.ts","../../model/groupsAndBenchmarksModuleClassPermission.ts","../../model/guidResponse.ts","../../model/hiddenRequest.ts","../../model/hierarchicalCollections.ts","../../model/hierarchicalCollections2.ts","../../model/hierarchicalCostCenters.ts","../../model/hierarchicalCostCenters2.ts","../../model/hierarchicalDataPoint.ts","../../model/hierarchicalEmissionSource.ts","../../model/hierarchicalMeter.ts","../../model/hierarchicalPlaces.ts","../../model/hierarchicalPlaces2.ts","../../model/hierarchicalSpaces.ts","../../model/hierarchicalSpaces2.ts","../../model/highPrecisionTimeSeriesValue.ts","../../model/highPrecisionValue.ts","../../model/iActionResult.ts","../../model/iGHGDefaultScopeCategoryAndFactor.ts","../../model/iOutputFormatter.ts","../../model/icon.ts","../../model/intervalData.ts","../../model/intervalDataAnalysis.ts","../../model/intervalDataAnalysisClassPermission.ts","../../model/intervalDataClassPermission.ts","../../model/intervalDataRollup.ts","../../model/intervalDataRollupClassPermission.ts","../../model/itemRankResponse.ts","../../model/itemRankWithUnitResponse.ts","../../model/jsonBillExportAccount.ts","../../model/jsonBillExportGeneralLedger.ts","../../model/jsonBillExportLine.ts","../../model/jsonBillExportMeter.ts","../../model/jsonBillExportPlace.ts","../../model/jsonBillExportResponse.ts","../../model/jsonBillExportVendor.ts","../../model/kickoutField.ts","../../model/kickoutValue.ts","../../model/latestBenchmarkValue.ts","../../model/licenseFeatureAccountingExport.ts","../../model/licenseFeatureAccrualBills.ts","../../model/licenseFeatureBillCAPtureManagedServices.ts","../../model/licenseFeatureBillCapturePostPay.ts","../../model/licenseFeatureBillCapturePrePay.ts","../../model/licenseFeatureBudgets.ts","../../model/licenseFeatureCarbonHub.ts","../../model/licenseFeatureChargebacks.ts","../../model/licenseFeatureCostAvoidance.ts","../../model/licenseFeatureCustomBenchmarks.ts","../../model/licenseFeatureEnergyCAPPayments.ts","../../model/licenseFeatureGhg.ts","../../model/licenseFeatureGhgPremium.ts","../../model/licenseFeatureIntervalData.ts","../../model/licenseFeatureIntervalDataAnalysis.ts","../../model/licenseFeatureLegacyGHG.ts","../../model/licenseFeatureNonEnglishBills.ts","../../model/licenseFeatureReportDesigner.ts","../../model/licenseFeatureReportDistribution.ts","../../model/licenseFeatureUIDI.ts","../../model/licenseFeatureVendorManagementServices.ts","../../model/licenseFeatures.ts","../../model/licenseRequest.ts","../../model/licenseResponse.ts","../../model/licenseUsage.ts","../../model/linkSubAccountsFilters.ts","../../model/linkSubAccountsRequest.ts","../../model/listActionAccrualExclusion.ts","../../model/listActionApprove.ts","../../model/listActionCustom.ts","../../model/listActionExportHold.ts","../../model/listActionReverse.ts","../../model/listActionVoid.ts","../../model/listColumnEdit.ts","../../model/listCopy.ts","../../model/listCreate.ts","../../model/listCreateResponse.ts","../../model/listEdit.ts","../../model/listIds.ts","../../model/listResponse.ts","../../model/listResponseListField.ts","../../model/listResponseListItem.ts","../../model/listTypeChild.ts","../../model/loginRequest.ts","../../model/loginResponse.ts","../../model/manualAdjustmentRequest.ts","../../model/manuallyAdjustSavings.ts","../../model/manuallyAdjustSavingsClassPermission.ts","../../model/manufacturerChild.ts","../../model/mapDashboardSettingsRequest.ts","../../model/mapDashboardSettingsResponse.ts","../../model/mapPlaceChild.ts","../../model/mapWidgetResponse.ts","../../model/me.ts","../../model/meRequest.ts","../../model/message.ts","../../model/meterAccountChild.ts","../../model/meterActionCreateEmissionSource.ts","../../model/meterBillResponse.ts","../../model/meterCAPResponse.ts","../../model/meterCalendarizedUseVsWeatherResponse.ts","../../model/meterCategoryRequest.ts","../../model/meterCategoryResponse.ts","../../model/meterChild.ts","../../model/meterChildIncludeMeterImportIdAndRoute.ts","../../model/meterChildIncludePlace.ts","../../model/meterChildIncludePlaceAndSerialNumber.ts","../../model/meterChildIncludePlaceChannelLatestReading.ts","../../model/meterChildSearch.ts","../../model/meterCost.ts","../../model/meterCreate.ts","../../model/meterDigestActualAndCalendarizedMonthlyResponse.ts","../../model/meterDigestActualAndCalendarizedMonthlyResponseResults.ts","../../model/meterDigestActualAndCalendarizedYearlyResponse.ts","../../model/meterDigestActualAndCalendarizedYearlyResponseResults.ts","../../model/meterDigestCalendarizedTrendResponse.ts","../../model/meterDigestCalendarizedTrendResponseResults.ts","../../model/meterDigestNormalizedMonthlyResponse.ts","../../model/meterDigestNormalizedMonthlyResponseResults.ts","../../model/meterDigestNormalizedYearlyResponse.ts","../../model/meterDigestNormalizedYearlyResponseResults.ts","../../model/meterDigestSavingsMonthlyResponse.ts","../../model/meterDigestSavingsMonthlyResponseResults.ts","../../model/meterDigestSavingsYearlyResponse.ts","../../model/meterDigestSavingsYearlyResponseResults.ts","../../model/meterEdit.ts","../../model/meterGroupCategoryChild.ts","../../model/meterGroupChild.ts","../../model/meterGroupDigestChild.ts","../../model/meterGroupDigestDemandRankingChild.ts","../../model/meterGroupDigestDemandRankingResponse.ts","../../model/meterGroupDigestRankingChild.ts","../../model/meterGroupDigestRankingResponse.ts","../../model/meterGroupMember.ts","../../model/meterGroupMemberChild.ts","../../model/meterGroupRequest.ts","../../model/meterGroupResponse.ts","../../model/meterLink.ts","../../model/meterLinkRequest.ts","../../model/meterRateResponse.ts","../../model/meterResponse.ts","../../model/meterSavingsSettings.ts","../../model/meterSavingsSettingsClassPermission.ts","../../model/meterSearchRequest.ts","../../model/meterSerialNumberHistoryChild.ts","../../model/meterSerialNumberHistoryRequest.ts","../../model/meterSerialNumberHistoryResponse.ts","../../model/meterTemplateResponse.ts","../../model/meterTypeChild.ts","../../model/meterUDFResponse.ts","../../model/meters.ts","../../model/metersClassPermission.ts","../../model/missingBillWidget.ts","../../model/modelVoid.ts","../../model/monthlyCAPTrend.ts","../../model/monthlyTimeSeriesValue.ts","../../model/mostRecentAggregate.ts","../../model/moveAccountsBetweenVendors.ts","../../model/moveAccountsBetweenVendorsClassPermission.ts","../../model/moveBillsDestination.ts","../../model/moveCreateMeter.ts","../../model/moveExistingBills.ts","../../model/moveExistingBillsClassPermission.ts","../../model/namedPeriod.ts","../../model/normalizationSettings.ts","../../model/normalizationSettingsClassPermission.ts","../../model/notificationActionButtonResponse.ts","../../model/notificationBadgeResponse.ts","../../model/notificationCategory.ts","../../model/notificationDetailsResponse.ts","../../model/notificationResponse.ts","../../model/notificationSettingRequest.ts","../../model/notificationSettingResponse.ts","../../model/notificationSettingsResponse.ts","../../model/notificationSystemSettingsRequest.ts","../../model/notificationType.ts","../../model/notificationUpdateRequest.ts","../../model/observationMethodChild.ts","../../model/observationRule.ts","../../model/observationType.ts","../../model/observationTypeChild.ts","../../model/observationTypeChildBase.ts","../../model/okObjectResult.ts","../../model/okResult.ts","../../model/optionalUpdateNullableDateOnly.ts","../../model/optionalUpdateNullableDecimal.ts","../../model/optionalUpdateNullableInt32.ts","../../model/optionalUpdateString.ts","../../model/otherSavingsCategory.ts","../../model/otherSavingsCategoryRequest.ts","../../model/otherSavingsRequest.ts","../../model/otherSavingsResponse.ts","../../model/outlierSeverityChild.ts","../../model/periodComparison.ts","../../model/periodRange.ts","../../model/periodRangeComparison.ts","../../model/periodRangeComparisonDetailed.ts","../../model/permissionProduct.ts","../../model/permissions.ts","../../model/permissionsRequest.ts","../../model/placeCategoryRequest.ts","../../model/placeCategoryResponse.ts","../../model/placeChild.ts","../../model/placeChildWithFloorArea.ts","../../model/placeCost.ts","../../model/placeCreate.ts","../../model/placeDigestActualAndCalendarizedMonthlyResponse.ts","../../model/placeDigestActualAndCalendarizedMonthlyResponseCommodityData.ts","../../model/placeDigestActualAndCalendarizedMonthlyResponseCommodityResults.ts","../../model/placeDigestActualAndCalendarizedMonthlyResponseResults.ts","../../model/placeDigestActualAndCalendarizedYearlyResponse.ts","../../model/placeDigestActualAndCalendarizedYearlyResponseCommodityData.ts","../../model/placeDigestActualAndCalendarizedYearlyResponseCommodityResults.ts","../../model/placeDigestActualAndCalendarizedYearlyResponseResults.ts","../../model/placeDigestActualAndCalendarizedYearlyResponseTargetComparison.ts","../../model/placeDigestComparisonResponse.ts","../../model/placeDigestEnergyUseIntensity.ts","../../model/placeDigestEnergyUseIntensityEuiCommodity.ts","../../model/placeDigestEnergyUseIntensityEuiEnergyProject.ts","../../model/placeDigestGHGYearlyResponse.ts","../../model/placeDigestGHGYearlyResponseGHGScope.ts","../../model/placeDigestGHGYearlyResponseGHGType.ts","../../model/placeDigestGHGYearlyResponseResults.ts","../../model/placeDigestGHGYearlyResponseTargetComparison.ts","../../model/placeDigestNormalizedCommodityTargetComparisonMonthly.ts","../../model/placeDigestNormalizedCommodityTargetComparisonMonthlyCommodityResults.ts","../../model/placeDigestNormalizedMonthlyResponse.ts","../../model/placeDigestNormalizedMonthlyResponseCommodityData.ts","../../model/placeDigestNormalizedMonthlyResponseCommodityResults.ts","../../model/placeDigestNormalizedMonthlyResponseResults.ts","../../model/placeDigestNormalizedTargetComparisonMonthly.ts","../../model/placeDigestNormalizedTargetComparisonMonthlyResults.ts","../../model/placeDigestNormalizedYearlyResponse.ts","../../model/placeDigestNormalizedYearlyResponseCommodityData.ts","../../model/placeDigestNormalizedYearlyResponseCommodityResults.ts","../../model/placeDigestNormalizedYearlyResponseResults.ts","../../model/placeDigestNormalizedYearlyResponseTargetComparison.ts","../../model/placeDigestSavingsMonthlyResponse.ts","../../model/placeDigestSavingsMonthlyResponseCommodityData.ts","../../model/placeDigestSavingsMonthlyResponseCommodityDataCommodityResults.ts","../../model/placeDigestSavingsMonthlyResponseResults.ts","../../model/placeDigestSavingsYearlyResponse.ts","../../model/placeDigestSavingsYearlyResponseCommodityData.ts","../../model/placeDigestSavingsYearlyResponseCommodityDataCommodityResults.ts","../../model/placeDigestSavingsYearlyResponseResults.ts","../../model/placeDigestTargetComparisonMonthly.ts","../../model/placeDigestTargetComparisonMonthlyResults.ts","../../model/placeEdit.ts","../../model/placeEntityType.ts","../../model/placeGroupCategoryChild.ts","../../model/placeGroupChild.ts","../../model/placeGroupDigestAreaDemandRankingResponse.ts","../../model/placeGroupDigestAreaRankingChild.ts","../../model/placeGroupDigestBenchmarkRankingChild.ts","../../model/placeGroupDigestBenchmarkRankingResponse.ts","../../model/placeGroupDigestChild.ts","../../model/placeGroupDigestWeatherRankingChild.ts","../../model/placeGroupDigestWeatherRankingResponse.ts","../../model/placeGroupMember.ts","../../model/placeGroupRequest.ts","../../model/placeGroupResponse.ts","../../model/placeInfo.ts","../../model/placeResponse.ts","../../model/placeSizeChild.ts","../../model/placeSizeCreate.ts","../../model/placeSizeResponse.ts","../../model/placeSubmissionTypeRequest.ts","../../model/placeTypeRequest.ts","../../model/placeTypeResponse.ts","../../model/placeUDFResponse.ts","../../model/pmCommodityChild.ts","../../model/postalCodeResponse.ts","../../model/postalCodeResponseWeatherStation.ts","../../model/preference.ts","../../model/preferenceRequest.ts","../../model/primaryUseChild.ts","../../model/primaryUseCreate.ts","../../model/primaryUseResponse.ts","../../model/problemDetails.ts","../../model/product.ts","../../model/projectManagerResponse.ts","../../model/publicDashboardsOrMaps.ts","../../model/publicDashboardsOrMapsClassPermission.ts","../../model/quickFilter.ts","../../model/quickReport.ts","../../model/rateChild.ts","../../model/rateChildResponse.ts","../../model/rateCreate.ts","../../model/rateDigestActualYearlyResponse.ts","../../model/rateDigestActualYearlyResponseCommodityData.ts","../../model/rateDigestActualYearlyResponseCommodityResults.ts","../../model/rateDigestActualYearlyResponseResults.ts","../../model/rateEdit.ts","../../model/rateResponse.ts","../../model/rateSchedules.ts","../../model/rateSchedulesClassPermission.ts","../../model/rateVersionRequest.ts","../../model/rateVersionResponse.ts","../../model/reading.ts","../../model/readingChildBase.ts","../../model/readingCreate.ts","../../model/readingDelete.ts","../../model/readingImportProfile.ts","../../model/readingImportProfileColumn.ts","../../model/readingImportProfileRequest.ts","../../model/readingImportProfileResponse.ts","../../model/readingImportRequest.ts","../../model/readingResponse.ts","../../model/readings.ts","../../model/readingsObservation.ts","../../model/recordImportProfile.ts","../../model/recordImportProfileEdit.ts","../../model/recordImportProfileRequest.ts","../../model/recordImportProfileResponse.ts","../../model/recordImportRequest.ts","../../model/records.ts","../../model/recordsClassPermission.ts","../../model/recordsListAdministrator.ts","../../model/recordsListAdministratorClassPermission.ts","../../model/recordsModule.ts","../../model/recordsModuleClassPermission.ts","../../model/relatedReportResponse.ts","../../model/reportAdministrator.ts","../../model/reportAdministratorClassPermission.ts","../../model/reportCategoryChild.ts","../../model/reportChild.ts","../../model/reportCreate.ts","../../model/reportDistributionChild.ts","../../model/reportDistributionCreateRequest.ts","../../model/reportDistributionDetailsResponse.ts","../../model/reportDistributionEditRequest.ts","../../model/reportDistributionEmailSettings.ts","../../model/reportDistributionLogDetailsResponse.ts","../../model/reportDistributionLogEmailSettings.ts","../../model/reportDistributionLogReportSettings.ts","../../model/reportDistributionLogResponse.ts","../../model/reportEdit.ts","../../model/reportGroupChildResponse.ts","../../model/reportGroupRequest.ts","../../model/reportGroupResponse.ts","../../model/reportGroups.ts","../../model/reportGroupsClassPermission.ts","../../model/reportSubscriptionChild.ts","../../model/reportSubscriptionDayIndicatorChild.ts","../../model/reportSubscriptionRequest.ts","../../model/reportSubscriptionScheduleTypeChild.ts","../../model/reportSubscriptionScheduleTypeResponse.ts","../../model/reportType.ts","../../model/reportingSettingRequest.ts","../../model/reportingSettingResponse.ts","../../model/reports.ts","../../model/reportsClassPermission.ts","../../model/reportsModule.ts","../../model/reportsModuleClassPermission.ts","../../model/requiredAddressChild.ts","../../model/resetUserPasswords.ts","../../model/resetUserPasswordsClassPermission.ts","../../model/reversalBatchSettings.ts","../../model/reviewed.ts","../../model/roles.ts","../../model/rolesClassPermission.ts","../../model/rollingComparisonDetail.ts","../../model/rollingComparisonPeriodValue.ts","../../model/rollingComparisonResponse.ts","../../model/rollupUnitUpdate.ts","../../model/rollupUnitUpdateCommonUnit.ts","../../model/routeChild.ts","../../model/routeDetailsResponse.ts","../../model/routeMeter.ts","../../model/routeMeterChannelLatestReadingResponse.ts","../../model/routeRequest.ts","../../model/routeResponse.ts","../../model/safeWaitHandle.ts","../../model/savingsAdjustments.ts","../../model/savingsAdjustmentsClassPermission.ts","../../model/savingsDailyData.ts","../../model/savingsEngine.ts","../../model/savingsEngineClassPermission.ts","../../model/savingsLog.ts","../../model/savingsMeterBillDailyResponse.ts","../../model/savingsMeterBillResponse.ts","../../model/scheduleChild.ts","../../model/scheduleCreate.ts","../../model/scheduleDay.ts","../../model/scheduleDayCreate.ts","../../model/scheduleEdit.ts","../../model/scheduleResponse.ts","../../model/scheduleWithEntitySummaries.ts","../../model/searchAccountChild.ts","../../model/searchAccountChildSearchAccountChild.ts","../../model/searchAccountMeterBillEntry.ts","../../model/searchBillChild.ts","../../model/searchBillChildSearchBillAccountChild.ts","../../model/searchBillChildSearchBillChild.ts","../../model/searchCollectionChild.ts","../../model/searchCollectionChildSearchCollection.ts","../../model/searchCostCenterChild.ts","../../model/searchCostCenterChildSearchCostCenter.ts","../../model/searchEmissionSourceChild.ts","../../model/searchEmissionSourceChildSearchEmissionSource.ts","../../model/searchMeterChild.ts","../../model/searchMeterChildSearchMeterChild.ts","../../model/searchParentPlaceChild.ts","../../model/searchPlaceChild.ts","../../model/searchPlaceChildSearchPlaceChild.ts","../../model/searchPlaceGroup.ts","../../model/searchResponse.ts","../../model/searchVendorChild.ts","../../model/searchVendorChildSearchVendorChild.ts","../../model/sendDataAccessReleaseRequest.ts","../../model/sendNotifications.ts","../../model/sendNotificationsClassPermission.ts","../../model/setup.ts","../../model/shareRequest.ts","../../model/shareResponse.ts","../../model/sharedBillLists.ts","../../model/sharedBillListsClassPermission.ts","../../model/sharedDashboardsOrMaps.ts","../../model/sharedDashboardsOrMapsClassPermission.ts","../../model/sharedRecordsLists.ts","../../model/sharedRecordsListsClassPermission.ts","../../model/sharedReports.ts","../../model/sharedReportsClassPermission.ts","../../model/singleBoolean.ts","../../model/singleValue.ts","../../model/sourceBatchLogResponse.ts","../../model/specialAdjustmentCreate.ts","../../model/specialAdjustmentEdit.ts","../../model/specialAdjustmentMethod.ts","../../model/specialAdjustmentResponse.ts","../../model/specialAdjustmentType.ts","../../model/specificReportResponse.ts","../../model/specificWidgetResponse.ts","../../model/statementDateTooLongAfterBillEndSettingRequest.ts","../../model/statementDateTooLongAfterBillEndSettingResponse.ts","../../model/statisticsResponse.ts","../../model/submissionTypeResponse.ts","../../model/subtractRequest.ts","../../model/subtractResponse.ts","../../model/sumRequest.ts","../../model/sumResponse.ts","../../model/summarizationMethod.ts","../../model/systemSettingsRequest.ts","../../model/systemSettingsResponse.ts","../../model/systemUserRoleChild.ts","../../model/systemUserRoleResponse.ts","../../model/systemUserRoleWithHiddenRequest.ts","../../model/tagChild.ts","../../model/tagResponse.ts","../../model/target.ts","../../model/targetBatchLogResponse.ts","../../model/targetSettings.ts","../../model/taskChild.ts","../../model/taskEdit.ts","../../model/taskResponse.ts","../../model/taskType.ts","../../model/temperatureResponse.ts","../../model/templateChild.ts","../../model/templateLine.ts","../../model/templateResponse.ts","../../model/templateVendorLineRequest.ts","../../model/templateVersion.ts","../../model/timeFormatResponse.ts","../../model/timeSeriesDataResponse.ts","../../model/timeSeriesEntity.ts","../../model/timeSeriesEntitySummary.ts","../../model/timeSeriesSummary.ts","../../model/timeSeriesValue.ts","../../model/timeZoneChild.ts","../../model/timeZoneResponse.ts","../../model/toggleVisible.ts","../../model/tooManyConsecutiveEstimatedBillsSettingRequest.ts","../../model/tooManyConsecutiveEstimatedBillsSettingResponse.ts","../../model/topmostCollection.ts","../../model/topmostCostCenter.ts","../../model/topmostPlace.ts","../../model/topmostSpace.ts","../../model/totalBillCostDoesNotMatchLineItemTypesSettingRequest.ts","../../model/totalBillCostDoesNotMatchLineItemTypesSettingResponse.ts","../../model/trendDataResponse.ts","../../model/trendTarget.ts","../../model/uDFCreate.ts","../../model/uDFEdit.ts","../../model/uDFFieldChild.ts","../../model/uDFResponse.ts","../../model/uDFSelectValueCreate.ts","../../model/uDFSelectValueEdit.ts","../../model/uDFSelectValueEntityResponse.ts","../../model/uDFSelectValueResponse.ts","../../model/uDFSelectValueUpdate.ts","../../model/uDFUpdate.ts","../../model/uDFValue.ts","../../model/unit.ts","../../model/unitChild.ts","../../model/unitResponse.ts","../../model/unitSystemSettings.ts","../../model/unitSystemSettingsClassPermission.ts","../../model/unitType.ts","../../model/updateApprovedBills.ts","../../model/updateApprovedBillsClassPermission.ts","../../model/updateBatchStatusRequest.ts","../../model/updateResult.ts","../../model/updateSkippedResult.ts","../../model/updateUnitsOnExistingBills.ts","../../model/updateUnitsOnExistingBillsClassPermission.ts","../../model/updatedOnlyResult.ts","../../model/upsertAggregateMeterRequest.ts","../../model/userChild.ts","../../model/userChildWithEmail.ts","../../model/userCreateRequest.ts","../../model/userEditRequest.ts","../../model/userGroupChild.ts","../../model/userGroupRequest.ts","../../model/userGroupResponse.ts","../../model/userGroupWithMembers.ts","../../model/userResponse.ts","../../model/userRoleRequest.ts","../../model/usersAndRoles.ts","../../model/usersAndRolesClassPermission.ts","../../model/usersAndUserGroups.ts","../../model/usersAndUserGroupsClassPermission.ts","../../model/utilityPlatform.ts","../../model/utilityPlatformMeter.ts","../../model/valueComparison.ts","../../model/valueWithUnit.ts","../../model/vemChatCreate.ts","../../model/vemChatEdit.ts","../../model/vemChatMessageCreate.ts","../../model/vemChatMessageResponse.ts","../../model/vemChatResponse.ts","../../model/vendorAuditEnable.ts","../../model/vendorBillAccountChargeSplitSettingsResponse.ts","../../model/vendorChild.ts","../../model/vendorContractResponse.ts","../../model/vendorDigestActualYearlyResponse.ts","../../model/vendorDigestActualYearlyResponseCommodityData.ts","../../model/vendorDigestActualYearlyResponseCommodityResults.ts","../../model/vendorDigestActualYearlyResponseResults.ts","../../model/vendorEdit.ts","../../model/vendorRequest.ts","../../model/vendorResponse.ts","../../model/vendorTypeChild.ts","../../model/vendorUDFResponse.ts","../../model/vendors.ts","../../model/vendorsAndRatesModule.ts","../../model/vendorsAndRatesModuleClassPermission.ts","../../model/vendorsClassPermission.ts","../../model/versionChild.ts","../../model/versionResponse.ts","../../model/waitHandle.ts","../../model/watticsDataPoint.ts","../../model/watticsDataPointChild.ts","../../model/watticsDataPointRequest.ts","../../model/watticsSite.ts","../../model/watticsSiteRequest.ts","../../model/weatherImportResult.ts","../../model/weatherImportSettings.ts","../../model/weatherSettings.ts","../../model/weatherSettingsClassPermission.ts","../../model/weatherStationChild.ts","../../model/weatherStationResponse.ts","../../model/weatherStationSummary.ts","../../model/webCaptureAccountResponse.ts","../../model/webCaptureCredentialDetailsResponse.ts","../../model/webCaptureCredentialResponse.ts","../../model/webCapturePartnerResponse.ts","../../model/webhookCreateRequest.ts","../../model/webhookCustomAction.ts","../../model/webhookEditRequest.ts","../../model/webhookEventTypeChild.ts","../../model/webhookLogDetailsResponse.ts","../../model/webhookLogResponse.ts","../../model/webhookResponse.ts","../../model/widgetCreate.ts","../../model/widgetEdit.ts","../../model/widgetResponse.ts","../../model/widgetSavingsYearlyResponse.ts","../../model/widgetSavingsYearlyResponseCommodityData.ts","../../model/widgetSavingsYearlyResponseResults.ts","../../model/workflowDisplaySetting.ts","../../model/workflowSettingsRequest.ts","../../model/workflowSettingsResponse.ts","../../model/yearRange.ts","../../api.module.ts","../../energycap-energycap-sdk-angular.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const BASE_PATH = new InjectionToken<string>('basePath');\nexport const COLLECTION_FORMATS = {\n    'csv': ',',\n    'tsv': '   ',\n    'ssv': ' ',\n    'pipes': '|'\n}","export interface ConfigurationParameters {\n    apiKeys?: {[ key: string ]: string};\n    username?: string;\n    password?: string;\n    accessToken?: string;\n    basePath?: string;\n    withCredentials?: boolean;\n}\n\nexport class Configuration {\n    apiKeys: {[ key: string ]: string};\n    username: string;\n    password: string;\n    accessToken: string | (() => string);\n    basePath: string;\n    withCredentials: boolean;\n\n    constructor(configurationParameters: ConfigurationParameters = {}) {\n        if (configurationParameters.apiKeys) {\n            this.apiKeys = <{ [key: string]: string }>configurationParameters.apiKeys;\n        }\n\n        if (this.username) {\n            this.username = <string>configurationParameters.username;\n        }\n\n        if (this.password) {\n            this.password = <string>configurationParameters.password;\n        }\n\n        if (this.accessToken) {\n            this.accessToken = <string>configurationParameters.accessToken;\n        }\n\n        if (this.basePath) {\n            this.basePath = <string>configurationParameters.basePath;\n        }\n        if (this.withCredentials) {\n            this.withCredentials = <boolean>configurationParameters.withCredentials;\n        }\n    }\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { AccountAlertRequest } from '../model/accountAlertRequest';\nimport { AccountAlertResponse } from '../model/accountAlertResponse';\nimport { AccountAuditEnable } from '../model/accountAuditEnable';\nimport { AccountAuditSettingsRequest } from '../model/accountAuditSettingsRequest';\nimport { AccountAuditSettingsResponse } from '../model/accountAuditSettingsResponse';\nimport { AccountCodeHistoryRequest } from '../model/accountCodeHistoryRequest';\nimport { AccountCodeHistoryResponse } from '../model/accountCodeHistoryResponse';\nimport { AccountCreate } from '../model/accountCreate';\nimport { AccountEdit } from '../model/accountEdit';\nimport { AccountRateResponse } from '../model/accountRateResponse';\nimport { AccountResponse } from '../model/accountResponse';\nimport { AccountTemplateResponse } from '../model/accountTemplateResponse';\nimport { AccountUDFResponse } from '../model/accountUDFResponse';\nimport { SearchAccountMeterBillEntry } from '../model/searchAccountMeterBillEntry';\nimport { SingleValue } from '../model/singleValue';\nimport { UDFFieldChild } from '../model/uDFFieldChild';\nimport { UDFValue } from '../model/uDFValue';\nimport { UpdateResult } from '../model/updateResult';\nimport { WebhookCustomAction } from '../model/webhookCustomAction';\nimport { WebhookLogDetailsResponse } from '../model/webhookLogDetailsResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class AccountService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Creates an account\n     * \n     * @param body Data representing the account being created\n     */\n    public createAccount(body?: AccountCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<AccountResponse> {\n        return this.createAccountWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<AccountResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Creates an account alert\n     * \n     * @param accountId The identifier for the account to create alert is on\n     * @param body Data representing the account alert being created\n     */\n    public createAccountAlert(accountId: number, body?: AccountAlertRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<AccountAlertResponse> {\n        return this.createAccountAlertWithHttpInfo(accountId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<AccountAlertResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes an account. Currently NO confirmation is required\n     * \n     * @param accountId The identifier for the account being deleted\n     * @param deleteBills Should this cascade to delete any bills associated with this meter\n     */\n    public deleteAccount(accountId: number, deleteBills?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteAccountWithHttpInfo(accountId, deleteBills, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes an account alert.\n     * \n     * @param accountId The identifier for the account the alert is on\n     * @param alertId The identifier for the alert to delete\n     */\n    public deleteAccountAlert(accountId: number, alertId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteAccountAlertWithHttpInfo(accountId, alertId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Download file for an account custom field\n     * \n     * @param accountId \n     * @param udfId \n     */\n    public downloadAccountCustomFieldFile(accountId: number, udfId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.downloadAccountCustomFieldFileWithHttpInfo(accountId, udfId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits an account\n     * \n     * @param accountId The identifier for the account being edited\n     * @param body Data representing the account being edited\n     */\n    public editAccount(accountId: number, body?: AccountEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<AccountResponse> {\n        return this.editAccountWithHttpInfo(accountId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<AccountResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * \n     * \n     * @param accountId \n     * @param body \n     */\n    public editAccountCodeVersion(accountId: number, body?: AccountCodeHistoryRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<AccountCodeHistoryResponse> {\n        return this.editAccountCodeVersionWithHttpInfo(accountId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<AccountCodeHistoryResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits user defined field / custom field values for a particular account\n     * \n     * @param accountId The identifier for the account\n     * @param body Data representing the account user defined fields / custom fields being edited\n     */\n    public editAccountUDFs(accountId: number, body?: Array<UDFValue>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<UDFFieldChild>> {\n        return this.editAccountUDFsWithHttpInfo(accountId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<UDFFieldChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves one account\n     * \n     * @param accountId The account identifier for the account being retrieved\n     */\n    public getAccount(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<AccountResponse> {\n        return this.getAccountWithHttpInfo(accountId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<AccountResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves an alert for an account\n     * \n     * @param accountId The identifier for the account the alert is on\n     * @param alertId The identifier for the alert to return\n     */\n    public getAccountAlert(accountId: number, alertId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<AccountAlertResponse> {\n        return this.getAccountAlertWithHttpInfo(accountId, alertId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<AccountAlertResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all alerts for an account\n     * \n     * @param accountId The identifier for the account\n     */\n    public getAccountAlerts(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<AccountAlertResponse>> {\n        return this.getAccountAlertsWithHttpInfo(accountId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<AccountAlertResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Gets all account audit setting overrides\n     * \n     * @param accountId \n     */\n    public getAccountAuditSettings(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<AccountAuditSettingsResponse> {\n        return this.getAccountAuditSettingsWithHttpInfo(accountId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<AccountAuditSettingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all rates for a particular account\n     * \n     * @param accountId The account identifier for which rate values are being retrieved\n     */\n    public getAccountRates(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<AccountRateResponse>> {\n        return this.getAccountRatesWithHttpInfo(accountId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<AccountRateResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all templates for a particular account\n     * \n     * @param accountId The account identifier for which template values are being retrieved\n     */\n    public getAccountTemplates(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<AccountTemplateResponse>> {\n        return this.getAccountTemplatesWithHttpInfo(accountId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<AccountTemplateResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all user defined fields / custom fields for a particular account\n     * \n     * @param accountId The account identifier for which user defined field / custom field values are being retrieved\n     */\n    public getAccountUdfs(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<UDFFieldChild>> {\n        return this.getAccountUdfsWithHttpInfo(accountId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<UDFFieldChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all accounts\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getAccounts(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<AccountResponse>> {\n        return this.getAccountsWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<AccountResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all user defined fields / custom fields for all accounts\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getAccountsUdfs(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<AccountUDFResponse>> {\n        return this.getAccountsUdfsWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<AccountUDFResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * For a given accountId, startDate and endDates for a bill get a billing period recommendation The billing period will be in YYYYMM format YYYY represents the 4 digit year and MM is the two digit month 01 for Jan to 12 for Dec\n     * \n     * @param accountId The identifier for the account for which bill is being created\n     * @param startDate The start date of the bill\n     * @param endDate The end date of the bill\n     */\n    public getDefaultBillingPeriod(accountId: number, startDate?: Date, endDate?: Date, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<SingleValue> {\n        return this.getDefaultBillingPeriodWithHttpInfo(accountId, startDate, endDate, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<SingleValue>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Move list of accounts to be under parentCostCenterId\n     * \n     * @param parentCostCenterId The identifier for the new parent costCenter\n     * @param body List of accountIds to move under the parentCostCenterId\n     */\n    public moveAccount(parentCostCenterId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.moveAccountWithHttpInfo(parentCostCenterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Fires a custom account action. Custom account actions are setup as webhooks\n     * \n     * @param body \n     */\n    public processAccountCustomAction(body?: WebhookCustomAction, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<WebhookLogDetailsResponse> {\n        return this.processAccountCustomActionWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<WebhookLogDetailsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Search for accounts Search for accounts whose account code, address, old account code, meter serial number, or meter address contains \\&quot;query\\&quot;\n     * \n     * @param query The string to search for\n     * @param includeInactiveAccounts Flag to determine if inactive accounts should be included in the search results\n     */\n    public searchAccounts(query?: string, includeInactiveAccounts?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<SearchAccountMeterBillEntry>> {\n        return this.searchAccountsWithHttpInfo(query, includeInactiveAccounts, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<SearchAccountMeterBillEntry>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Enable or disable Accounts from audits\n     * \n     * @param body \n     */\n    public setAccountAuditExclusion(body?: AccountAuditEnable, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.setAccountAuditExclusionWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Updates an account alert\n     * \n     * @param accountId The identifier for the account the alert to update is on\n     * @param alertId The identifier for the account alert to update\n     * @param body Data representing the account alert being created\n     */\n    public updateAccountAlert(accountId: number, alertId: number, body?: AccountAlertRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<AccountAlertResponse> {\n        return this.updateAccountAlertWithHttpInfo(accountId, alertId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<AccountAlertResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Update audit settings for an account.  Every audit must be included but supplying null for its settings will remove them.\n     *  __Setting Status Descriptions:__  | Setting Status | Description | | -------------- | ----------- | | Check          | If this audit fails affected bills are flagged  | | Hold           | If this audit fails affected bills are flagged and held from export  | | Skip           | This audit is skipped  |\n     * @param accountId The account identifier\n     * @param body The new state of the audit settings\n     */\n    public updateAccountAuditSettings(accountId: number, body?: AccountAuditSettingsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<AccountAuditSettingsResponse> {\n        return this.updateAccountAuditSettingsWithHttpInfo(accountId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<AccountAuditSettingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Creates an account\n     * \n     * @param body Data representing the account being created\n     */\n    public createAccountWithHttpInfo(body?: AccountCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<AccountResponse>> {\n        const path = this.basePath + '/api/v3/account';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<AccountResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Creates an account alert\n     * \n     * @param accountId The identifier for the account to create alert is on\n     * @param body Data representing the account alert being created\n     */\n    public createAccountAlertWithHttpInfo(accountId: number, body?: AccountAlertRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<AccountAlertResponse>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/alert'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling createAccountAlert.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<AccountAlertResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Deletes an account. Currently NO confirmation is required\n     * \n     * @param accountId The identifier for the account being deleted\n     * @param deleteBills Should this cascade to delete any bills associated with this meter\n     */\n    public deleteAccountWithHttpInfo(accountId: number, deleteBills?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/account/${accountId}'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling deleteAccount.');\n        }\n        if (deleteBills !== undefined) {\n            queryParameters = queryParameters.set('deleteBills', <any>deleteBills);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Deletes an account alert.\n     * \n     * @param accountId The identifier for the account the alert is on\n     * @param alertId The identifier for the alert to delete\n     */\n    public deleteAccountAlertWithHttpInfo(accountId: number, alertId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/alert/${alertId}'\n                    .replace('${' + 'accountId' + '}', String(accountId))\n                    .replace('${' + 'alertId' + '}', String(alertId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling deleteAccountAlert.');\n        }\n        // verify required parameter 'alertId' is not null or undefined\n        if (alertId === null || alertId === undefined) {\n            throw new Error('Required parameter alertId was null or undefined when calling deleteAccountAlert.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Download file for an account custom field\n     * \n     * @param accountId \n     * @param udfId \n     */\n    public downloadAccountCustomFieldFileWithHttpInfo(accountId: number, udfId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202105/account/${accountId}/udf/${udfId}/download'\n                    .replace('${' + 'accountId' + '}', String(accountId))\n                    .replace('${' + 'udfId' + '}', String(udfId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling downloadAccountCustomFieldFile.');\n        }\n        // verify required parameter 'udfId' is not null or undefined\n        if (udfId === null || udfId === undefined) {\n            throw new Error('Required parameter udfId was null or undefined when calling downloadAccountCustomFieldFile.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Edits an account\n     * \n     * @param accountId The identifier for the account being edited\n     * @param body Data representing the account being edited\n     */\n    public editAccountWithHttpInfo(accountId: number, body?: AccountEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<AccountResponse>> {\n        const path = this.basePath + '/api/v202511/account/${accountId}'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling editAccount.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<AccountResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * \n     * \n     * @param accountId \n     * @param body \n     */\n    public editAccountCodeVersionWithHttpInfo(accountId: number, body?: AccountCodeHistoryRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<AccountCodeHistoryResponse>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/codeversion'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling editAccountCodeVersion.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<AccountCodeHistoryResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edits user defined field / custom field values for a particular account\n     * \n     * @param accountId The identifier for the account\n     * @param body Data representing the account user defined fields / custom fields being edited\n     */\n    public editAccountUDFsWithHttpInfo(accountId: number, body?: Array<UDFValue>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<UDFFieldChild>>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/udf'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling editAccountUDFs.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<UDFFieldChild>>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Retrieves one account\n     * \n     * @param accountId The account identifier for the account being retrieved\n     */\n    public getAccountWithHttpInfo(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<AccountResponse>> {\n        const path = this.basePath + '/api/v3/account/${accountId}'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling getAccount.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<AccountResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves an alert for an account\n     * \n     * @param accountId The identifier for the account the alert is on\n     * @param alertId The identifier for the alert to return\n     */\n    public getAccountAlertWithHttpInfo(accountId: number, alertId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<AccountAlertResponse>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/alert/${alertId}'\n                    .replace('${' + 'accountId' + '}', String(accountId))\n                    .replace('${' + 'alertId' + '}', String(alertId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling getAccountAlert.');\n        }\n        // verify required parameter 'alertId' is not null or undefined\n        if (alertId === null || alertId === undefined) {\n            throw new Error('Required parameter alertId was null or undefined when calling getAccountAlert.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<AccountAlertResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all alerts for an account\n     * \n     * @param accountId The identifier for the account\n     */\n    public getAccountAlertsWithHttpInfo(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<AccountAlertResponse>>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/alert'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling getAccountAlerts.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<AccountAlertResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Gets all account audit setting overrides\n     * \n     * @param accountId \n     */\n    public getAccountAuditSettingsWithHttpInfo(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<AccountAuditSettingsResponse>> {\n        const path = this.basePath + '/api/v202506/account/${accountId}/auditSetting'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling getAccountAuditSettings.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<AccountAuditSettingsResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all rates for a particular account\n     * \n     * @param accountId The account identifier for which rate values are being retrieved\n     */\n    public getAccountRatesWithHttpInfo(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<AccountRateResponse>>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/rate'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling getAccountRates.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<AccountRateResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all templates for a particular account\n     * \n     * @param accountId The account identifier for which template values are being retrieved\n     */\n    public getAccountTemplatesWithHttpInfo(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<AccountTemplateResponse>>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/template'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling getAccountTemplates.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<AccountTemplateResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all user defined fields / custom fields for a particular account\n     * \n     * @param accountId The account identifier for which user defined field / custom field values are being retrieved\n     */\n    public getAccountUdfsWithHttpInfo(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<UDFFieldChild>>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/udf'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling getAccountUdfs.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<UDFFieldChild>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all accounts\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getAccountsWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<AccountResponse>>> {\n        const path = this.basePath + '/api/v3/account';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<AccountResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all user defined fields / custom fields for all accounts\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getAccountsUdfsWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<AccountUDFResponse>>> {\n        const path = this.basePath + '/api/v3/account/udf';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<AccountUDFResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * For a given accountId, startDate and endDates for a bill get a billing period recommendation The billing period will be in YYYYMM format YYYY represents the 4 digit year and MM is the two digit month 01 for Jan to 12 for Dec\n     * \n     * @param accountId The identifier for the account for which bill is being created\n     * @param startDate The start date of the bill\n     * @param endDate The end date of the bill\n     */\n    public getDefaultBillingPeriodWithHttpInfo(accountId: number, startDate?: Date, endDate?: Date, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<SingleValue>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/billingPeriod'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling getDefaultBillingPeriod.');\n        }\n        if (startDate !== undefined) {\n            queryParameters = queryParameters.set('startDate', <any>startDate.toISOString());\n        }\n\n        if (endDate !== undefined) {\n            queryParameters = queryParameters.set('endDate', <any>endDate.toISOString());\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<SingleValue>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Move list of accounts to be under parentCostCenterId\n     * \n     * @param parentCostCenterId The identifier for the new parent costCenter\n     * @param body List of accountIds to move under the parentCostCenterId\n     */\n    public moveAccountWithHttpInfo(parentCostCenterId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/parentCostCenter/${parentCostCenterId}/account'\n                    .replace('${' + 'parentCostCenterId' + '}', String(parentCostCenterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'parentCostCenterId' is not null or undefined\n        if (parentCostCenterId === null || parentCostCenterId === undefined) {\n            throw new Error('Required parameter parentCostCenterId was null or undefined when calling moveAccount.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Fires a custom account action. Custom account actions are setup as webhooks\n     * \n     * @param body \n     */\n    public processAccountCustomActionWithHttpInfo(body?: WebhookCustomAction, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<WebhookLogDetailsResponse>> {\n        const path = this.basePath + '/api/v202211/account/customAction';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<WebhookLogDetailsResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Search for accounts Search for accounts whose account code, address, old account code, meter serial number, or meter address contains \\&quot;query\\&quot;\n     * \n     * @param query The string to search for\n     * @param includeInactiveAccounts Flag to determine if inactive accounts should be included in the search results\n     */\n    public searchAccountsWithHttpInfo(query?: string, includeInactiveAccounts?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<SearchAccountMeterBillEntry>>> {\n        const path = this.basePath + '/api/v3/account/search';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (query !== undefined) {\n            queryParameters = queryParameters.set('query', <any>query);\n        }\n\n        if (includeInactiveAccounts !== undefined) {\n            queryParameters = queryParameters.set('includeInactiveAccounts', <any>includeInactiveAccounts);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<SearchAccountMeterBillEntry>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Enable or disable Accounts from audits\n     * \n     * @param body \n     */\n    public setAccountAuditExclusionWithHttpInfo(body?: AccountAuditEnable, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v202104/account/auditEnabled';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Updates an account alert\n     * \n     * @param accountId The identifier for the account the alert to update is on\n     * @param alertId The identifier for the account alert to update\n     * @param body Data representing the account alert being created\n     */\n    public updateAccountAlertWithHttpInfo(accountId: number, alertId: number, body?: AccountAlertRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<AccountAlertResponse>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/alert/${alertId}'\n                    .replace('${' + 'accountId' + '}', String(accountId))\n                    .replace('${' + 'alertId' + '}', String(alertId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling updateAccountAlert.');\n        }\n        // verify required parameter 'alertId' is not null or undefined\n        if (alertId === null || alertId === undefined) {\n            throw new Error('Required parameter alertId was null or undefined when calling updateAccountAlert.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<AccountAlertResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Update audit settings for an account.  Every audit must be included but supplying null for its settings will remove them.\n     *  __Setting Status Descriptions:__  | Setting Status | Description | | -------------- | ----------- | | Check          | If this audit fails affected bills are flagged  | | Hold           | If this audit fails affected bills are flagged and held from export  | | Skip           | This audit is skipped  |\n     * @param accountId The account identifier\n     * @param body The new state of the audit settings\n     */\n    public updateAccountAuditSettingsWithHttpInfo(accountId: number, body?: AccountAuditSettingsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<AccountAuditSettingsResponse>> {\n        const path = this.basePath + '/api/v202506/account/${accountId}/auditSetting'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling updateAccountAuditSettings.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<AccountAuditSettingsResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { AccountDigestActualMonthlyResponse } from '../model/accountDigestActualMonthlyResponse';\nimport { AccountDigestActualYearlyResponse } from '../model/accountDigestActualYearlyResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class AccountDigestService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by account for a given number of years- Result includes cost, use, unit cost on a monthly basis. It also includes commodity level break up.\n     * \n     * @param accountId The account to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 24 months\n     */\n    public getAccountActualMonthly(accountId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<AccountDigestActualMonthlyResponse> {\n        return this.getAccountActualMonthlyWithHttpInfo(accountId, numberOfYears, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<AccountDigestActualMonthlyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by account for a given number of years- Result includes cost, use, unit cost on a monthly basis. It also includes commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 24 months\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getAccountActualMonthlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<AccountDigestActualMonthlyResponse>> {\n        return this.getAccountActualMonthlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<AccountDigestActualMonthlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by account for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes commodity level break up.\n     * \n     * @param accountId The account to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     */\n    public getAccountActualYearly(accountId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<AccountDigestActualYearlyResponse> {\n        return this.getAccountActualYearlyWithHttpInfo(accountId, numberOfYears, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<AccountDigestActualYearlyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by account for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getAccountActualYearlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<AccountDigestActualYearlyResponse>> {\n        return this.getAccountActualYearlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<AccountDigestActualYearlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Retrieves rolled up actual billing data by account for a given number of years- Result includes cost, use, unit cost on a monthly basis. It also includes commodity level break up.\n     * \n     * @param accountId The account to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 24 months\n     */\n    public getAccountActualMonthlyWithHttpInfo(accountId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<AccountDigestActualMonthlyResponse>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/digest/actual/monthly'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling getAccountActualMonthly.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<AccountDigestActualMonthlyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by account for a given number of years- Result includes cost, use, unit cost on a monthly basis. It also includes commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 24 months\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getAccountActualMonthlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<AccountDigestActualMonthlyResponse>>> {\n        const path = this.basePath + '/api/v3/account/digest/actual/monthly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<AccountDigestActualMonthlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by account for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes commodity level break up.\n     * \n     * @param accountId The account to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     */\n    public getAccountActualYearlyWithHttpInfo(accountId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<AccountDigestActualYearlyResponse>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/digest/actual/yearly'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling getAccountActualYearly.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<AccountDigestActualYearlyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by account for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getAccountActualYearlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<AccountDigestActualYearlyResponse>>> {\n        const path = this.basePath + '/api/v3/account/digest/actual/yearly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<AccountDigestActualYearlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { AccountMeterEdit } from '../model/accountMeterEdit';\nimport { AccountMeterRateResponse } from '../model/accountMeterRateResponse';\nimport { AccountMeterRequest } from '../model/accountMeterRequest';\nimport { AccountMeterResponse } from '../model/accountMeterResponse';\nimport { AccountRateRequest } from '../model/accountRateRequest';\nimport { FormTemplateRequest } from '../model/formTemplateRequest';\nimport { FormTemplateResponse } from '../model/formTemplateResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class AccountMeterService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Links an account and meter together Meters must be linked to an active account to be usable in EnergyCAP Once an account and meter are created individually, they must be linked with this API\n     * \n     * @param body Data representing the account and meter being linked\n     */\n    public createAccountMeter(body?: Array<AccountMeterRequest>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<AccountMeterResponse>> {\n        return this.createAccountMeterWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<AccountMeterResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Creates an AccountRate Relationship.  Linking AccountMeter and Rate\n     * \n     * @param accountMeterId \n     * @param body \n     */\n    public createAccountRate(accountMeterId: number, body?: AccountRateRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<AccountMeterRateResponse> {\n        return this.createAccountRateWithHttpInfo(accountMeterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<AccountMeterRateResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Assigns a new template to an account meter.  The new template&#39;s begin date must be after the begin date of all existing template assignments\n     * \n     * @param accountMeterId \n     * @param body \n     */\n    public createFormTemplate(accountMeterId: number, body?: FormTemplateRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<FormTemplateResponse> {\n        return this.createFormTemplateWithHttpInfo(accountMeterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<FormTemplateResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete an account meter\n     * \n     * @param accountMeterId \n     * @param deleteBills A true value means delete all bills that have at least 1 line for this account and meter             WARNING: Bills for this account include other meters.  The ENTIRE bill is deleted.             This flag can only be true when:             There is a single relationship between the specified account and meter\n     */\n    public deleteAccountMeter(accountMeterId: number, deleteBills?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteAccountMeterWithHttpInfo(accountMeterId, deleteBills, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete an template assignment from an account meter If we are deleting a template assignment in the middle of two other template assignments, then we will move back the next template&#39;s start date If we are deleting the last template(current template), the extend second last template&#39;s end date to match the account meter&#39;s end date If we are deleting the first template pull the second template&#39;s begin date to match account meter&#39;s begin date\n     * \n     * @param accountMeterId \n     * @param formTemplateId \n     */\n    public deleteTemplateAssignment(accountMeterId: number, formTemplateId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteTemplateAssignmentWithHttpInfo(accountMeterId, formTemplateId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit an account meter relationship\n     * \n     * @param accountMeterId The id of the account meter record to edit\n     * @param deleteBills A true value means delete all bills that have at least 1 line for this account and meter and a bill start date greater than or equal to the new account and meter relationship end date.             WARNING: Bills for this account may include other meters.  The ENTIRE bill is deleted.             This flag can only be true when:             Editing the most recent relationship between this account and meter             The end date has been changed but not the begin date\n     * @param body Data used to update the account and meter\n     */\n    public editAccountMeter(accountMeterId: number, deleteBills?: boolean, body?: AccountMeterEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<AccountMeterResponse> {\n        return this.editAccountMeterWithHttpInfo(accountMeterId, deleteBills, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<AccountMeterResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit all AccountRate relationships\n     * \n     * @param accountMeterId \n     * @param body \n     */\n    public editAccountRateList(accountMeterId: number, body?: Array<AccountRateRequest>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<AccountMeterRateResponse>> {\n        return this.editAccountRateListWithHttpInfo(accountMeterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<AccountMeterRateResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit all FormTemplate relationships\n     * \n     * @param accountMeterId \n     * @param body \n     */\n    public editFormTemplateList(accountMeterId: number, body?: Array<FormTemplateRequest>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<FormTemplateResponse>> {\n        return this.editFormTemplateListWithHttpInfo(accountMeterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<FormTemplateResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Links an account and meter together Meters must be linked to an active account to be usable in EnergyCAP Once an account and meter are created individually, they must be linked with this API\n     * \n     * @param body Data representing the account and meter being linked\n     */\n    public createAccountMeterWithHttpInfo(body?: Array<AccountMeterRequest>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<AccountMeterResponse>>> {\n        const path = this.basePath + '/api/v3/accountmeter';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<AccountMeterResponse>>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Creates an AccountRate Relationship.  Linking AccountMeter and Rate\n     * \n     * @param accountMeterId \n     * @param body \n     */\n    public createAccountRateWithHttpInfo(accountMeterId: number, body?: AccountRateRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<AccountMeterRateResponse>> {\n        const path = this.basePath + '/api/v3/accountmeter/${accountMeterId}/rate'\n                    .replace('${' + 'accountMeterId' + '}', String(accountMeterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountMeterId' is not null or undefined\n        if (accountMeterId === null || accountMeterId === undefined) {\n            throw new Error('Required parameter accountMeterId was null or undefined when calling createAccountRate.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<AccountMeterRateResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Assigns a new template to an account meter.  The new template&#39;s begin date must be after the begin date of all existing template assignments\n     * \n     * @param accountMeterId \n     * @param body \n     */\n    public createFormTemplateWithHttpInfo(accountMeterId: number, body?: FormTemplateRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<FormTemplateResponse>> {\n        const path = this.basePath + '/api/v3/accountmeter/${accountMeterId}/template'\n                    .replace('${' + 'accountMeterId' + '}', String(accountMeterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountMeterId' is not null or undefined\n        if (accountMeterId === null || accountMeterId === undefined) {\n            throw new Error('Required parameter accountMeterId was null or undefined when calling createFormTemplate.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<FormTemplateResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Delete an account meter\n     * \n     * @param accountMeterId \n     * @param deleteBills A true value means delete all bills that have at least 1 line for this account and meter             WARNING: Bills for this account include other meters.  The ENTIRE bill is deleted.             This flag can only be true when:             There is a single relationship between the specified account and meter\n     */\n    public deleteAccountMeterWithHttpInfo(accountMeterId: number, deleteBills?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/accountmeter/${accountMeterId}'\n                    .replace('${' + 'accountMeterId' + '}', String(accountMeterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountMeterId' is not null or undefined\n        if (accountMeterId === null || accountMeterId === undefined) {\n            throw new Error('Required parameter accountMeterId was null or undefined when calling deleteAccountMeter.');\n        }\n        if (deleteBills !== undefined) {\n            queryParameters = queryParameters.set('deleteBills', <any>deleteBills);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Delete an template assignment from an account meter If we are deleting a template assignment in the middle of two other template assignments, then we will move back the next template&#39;s start date If we are deleting the last template(current template), the extend second last template&#39;s end date to match the account meter&#39;s end date If we are deleting the first template pull the second template&#39;s begin date to match account meter&#39;s begin date\n     * \n     * @param accountMeterId \n     * @param formTemplateId \n     */\n    public deleteTemplateAssignmentWithHttpInfo(accountMeterId: number, formTemplateId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/accountmeter/${accountMeterId}/template/${formTemplateId}'\n                    .replace('${' + 'accountMeterId' + '}', String(accountMeterId))\n                    .replace('${' + 'formTemplateId' + '}', String(formTemplateId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountMeterId' is not null or undefined\n        if (accountMeterId === null || accountMeterId === undefined) {\n            throw new Error('Required parameter accountMeterId was null or undefined when calling deleteTemplateAssignment.');\n        }\n        // verify required parameter 'formTemplateId' is not null or undefined\n        if (formTemplateId === null || formTemplateId === undefined) {\n            throw new Error('Required parameter formTemplateId was null or undefined when calling deleteTemplateAssignment.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Edit an account meter relationship\n     * \n     * @param accountMeterId The id of the account meter record to edit\n     * @param deleteBills A true value means delete all bills that have at least 1 line for this account and meter and a bill start date greater than or equal to the new account and meter relationship end date.             WARNING: Bills for this account may include other meters.  The ENTIRE bill is deleted.             This flag can only be true when:             Editing the most recent relationship between this account and meter             The end date has been changed but not the begin date\n     * @param body Data used to update the account and meter\n     */\n    public editAccountMeterWithHttpInfo(accountMeterId: number, deleteBills?: boolean, body?: AccountMeterEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<AccountMeterResponse>> {\n        const path = this.basePath + '/api/v3/accountmeter/${accountMeterId}'\n                    .replace('${' + 'accountMeterId' + '}', String(accountMeterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountMeterId' is not null or undefined\n        if (accountMeterId === null || accountMeterId === undefined) {\n            throw new Error('Required parameter accountMeterId was null or undefined when calling editAccountMeter.');\n        }\n        if (deleteBills !== undefined) {\n            queryParameters = queryParameters.set('deleteBills', <any>deleteBills);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<AccountMeterResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edit all AccountRate relationships\n     * \n     * @param accountMeterId \n     * @param body \n     */\n    public editAccountRateListWithHttpInfo(accountMeterId: number, body?: Array<AccountRateRequest>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<AccountMeterRateResponse>>> {\n        const path = this.basePath + '/api/v3/accountmeter/${accountMeterId}/rate'\n                    .replace('${' + 'accountMeterId' + '}', String(accountMeterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountMeterId' is not null or undefined\n        if (accountMeterId === null || accountMeterId === undefined) {\n            throw new Error('Required parameter accountMeterId was null or undefined when calling editAccountRateList.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<AccountMeterRateResponse>>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edit all FormTemplate relationships\n     * \n     * @param accountMeterId \n     * @param body \n     */\n    public editFormTemplateListWithHttpInfo(accountMeterId: number, body?: Array<FormTemplateRequest>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<FormTemplateResponse>>> {\n        const path = this.basePath + '/api/v3/accountmeter/${accountMeterId}/template'\n                    .replace('${' + 'accountMeterId' + '}', String(accountMeterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountMeterId' is not null or undefined\n        if (accountMeterId === null || accountMeterId === undefined) {\n            throw new Error('Required parameter accountMeterId was null or undefined when calling editFormTemplateList.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<FormTemplateResponse>>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { AccrualProcessorRequest } from '../model/accrualProcessorRequest';\nimport { AccrualSettingsResponse } from '../model/accrualSettingsResponse';\nimport { GuidResponse } from '../model/guidResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class AccrualService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Delete all bills created by the Accrual task  If any bills have already been exported they will still be deleted\n     * \n     * @param taskId Identifier for the accrual task\n     */\n    public deleteAccrualTask(taskId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteAccrualTaskWithHttpInfo(taskId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get Accrual settings\n     * \n     */\n    public getAccrualSettings(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<AccrualSettingsResponse> {\n        return this.getAccrualSettingsWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<AccrualSettingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Run the accrual processor engine using the supplied settings to generate accrual bills\n     * \n     * @param filter Accrual data selection filters\n     * @param body Accrual processor settings\n     */\n    public processAccruals(filter?: string, body?: AccrualProcessorRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<GuidResponse> {\n        return this.processAccrualsWithHttpInfo(filter, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<GuidResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Void all bills created by the Accrual task If any bills have already been exported they will still be voided\n     * \n     * @param taskId Identifier for the accrual task\n     */\n    public voidAccrualTask(taskId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.voidAccrualTaskWithHttpInfo(taskId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Delete all bills created by the Accrual task  If any bills have already been exported they will still be deleted\n     * \n     * @param taskId Identifier for the accrual task\n     */\n    public deleteAccrualTaskWithHttpInfo(taskId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/accrual/${taskId}/delete'\n                    .replace('${' + 'taskId' + '}', String(taskId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'taskId' is not null or undefined\n        if (taskId === null || taskId === undefined) {\n            throw new Error('Required parameter taskId was null or undefined when calling deleteAccrualTask.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Get Accrual settings\n     * \n     */\n    public getAccrualSettingsWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<AccrualSettingsResponse>> {\n        const path = this.basePath + '/api/v3/accrual/setting';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<AccrualSettingsResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Run the accrual processor engine using the supplied settings to generate accrual bills\n     * \n     * @param filter Accrual data selection filters\n     * @param body Accrual processor settings\n     */\n    public processAccrualsWithHttpInfo(filter?: string, body?: AccrualProcessorRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<GuidResponse>> {\n        const path = this.basePath + '/api/v3/accrual';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<GuidResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Void all bills created by the Accrual task If any bills have already been exported they will still be voided\n     * \n     * @param taskId Identifier for the accrual task\n     */\n    public voidAccrualTaskWithHttpInfo(taskId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/accrual/${taskId}/void'\n                    .replace('${' + 'taskId' + '}', String(taskId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'taskId' is not null or undefined\n        if (taskId === null || taskId === undefined) {\n            throw new Error('Required parameter taskId was null or undefined when calling voidAccrualTask.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Post, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { Activity } from '../model/activity';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class ActivityService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * List of a bill IDs that were created or modified since the given date.\n     * \n     * @param date Created or modified datetime; Defaults to yesterday at the current time\n     */\n    public getBillActivity(date?: Date, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<Activity>> {\n        return this.getBillActivityWithHttpInfo(date, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<Activity>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * List of a bill IDs that were created or modified since the given date.\n     * \n     * @param date Created or modified datetime; Defaults to yesterday at the current time\n     */\n    public getBillActivityWithHttpInfo(date?: Date, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<Activity>>> {\n        const path = this.basePath + '/api/v3/activity/bill';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (date !== undefined) {\n            queryParameters = queryParameters.set('date', <any>date.toISOString());\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<Activity>>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { AccountPeriodResponse } from '../model/accountPeriodResponse';\nimport { AccountingSettingsRequest } from '../model/accountingSettingsRequest';\nimport { AccountingSettingsResponse } from '../model/accountingSettingsResponse';\nimport { AdminSettingsRequest } from '../model/adminSettingsRequest';\nimport { AdminSettingsResponse } from '../model/adminSettingsResponse';\nimport { LicenseRequest } from '../model/licenseRequest';\nimport { LicenseResponse } from '../model/licenseResponse';\nimport { ReportingSettingRequest } from '../model/reportingSettingRequest';\nimport { ReportingSettingResponse } from '../model/reportingSettingResponse';\nimport { SingleValue } from '../model/singleValue';\nimport { SystemSettingsRequest } from '../model/systemSettingsRequest';\nimport { SystemSettingsResponse } from '../model/systemSettingsResponse';\nimport { WebhookLogDetailsResponse } from '../model/webhookLogDetailsResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class AdminService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Edit accounting settings\n     * \n     * @param body \n     */\n    public editAccountingSettings(body?: AccountingSettingsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<AccountingSettingsResponse> {\n        return this.editAccountingSettingsWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<AccountingSettingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit the license details.\n     * \n     * @param body \n     */\n    public editLicenseDetails(body?: LicenseRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<LicenseResponse> {\n        return this.editLicenseDetailsWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<LicenseResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit system settings\n     * \n     * @param body \n     */\n    public editSystemSettings(body?: SystemSettingsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<SystemSettingsResponse> {\n        return this.editSystemSettingsWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<SystemSettingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get the list of account periods\n     * \n     */\n    public getAccountPeriods(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<AccountPeriodResponse>> {\n        return this.getAccountPeriodsWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<AccountPeriodResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get accounting settings\n     * \n     */\n    public getAccountingSettings(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<AccountingSettingsResponse> {\n        return this.getAccountingSettingsWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<AccountingSettingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get license details.\n     * \n     */\n    public getLicenseDetails(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<LicenseResponse> {\n        return this.getLicenseDetailsWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<LicenseResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieve the organization logo, if configured. Only URLs or JPEG, PNG, and SVG images are acceptable organization logos. If the saved base64 image is of a different file type, it will return an error.\n     * \n     */\n    public getOrganizationLogo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<SingleValue> {\n        return this.getOrganizationLogoWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<SingleValue>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get the system reporting settings\n     * \n     */\n    public getReportingSettings(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ReportingSettingResponse> {\n        return this.getReportingSettingsWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ReportingSettingResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * \n     * \n     */\n    public getSystemSettings(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<AdminSettingsResponse>> {\n        return this.getSystemSettingsWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<AdminSettingsResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get system settings\n     * \n     */\n    public getSystemSettingsNew(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<SystemSettingsResponse> {\n        return this.getSystemSettingsNewWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<SystemSettingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Fire a custom application action webhook\n     * \n     * @param webhookId The identifier for the webhook being fired\n     */\n    public processCustomAppAction(webhookId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<WebhookLogDetailsResponse> {\n        return this.processCustomAppActionWithHttpInfo(webhookId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<WebhookLogDetailsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Set the system reporting settings\n     * \n     * @param body \n     */\n    public setReportingSettings(body?: ReportingSettingRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ReportingSettingResponse> {\n        return this.setReportingSettingsWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ReportingSettingResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * \n     * \n     * @param body \n     */\n    public updateSystemSettings(body?: Array<AdminSettingsRequest>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<AdminSettingsResponse>> {\n        return this.updateSystemSettingsWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<AdminSettingsResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Edit accounting settings\n     * \n     * @param body \n     */\n    public editAccountingSettingsWithHttpInfo(body?: AccountingSettingsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<AccountingSettingsResponse>> {\n        const path = this.basePath + '/api/v3/admin/accounting';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<AccountingSettingsResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edit the license details.\n     * \n     * @param body \n     */\n    public editLicenseDetailsWithHttpInfo(body?: LicenseRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<LicenseResponse>> {\n        const path = this.basePath + '/api/v3/admin/license';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<LicenseResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edit system settings\n     * \n     * @param body \n     */\n    public editSystemSettingsWithHttpInfo(body?: SystemSettingsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<SystemSettingsResponse>> {\n        const path = this.basePath + '/api/v202405/admin/systemSettings';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<SystemSettingsResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Get the list of account periods\n     * \n     */\n    public getAccountPeriodsWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<AccountPeriodResponse>>> {\n        const path = this.basePath + '/api/v3/admin/accountperiod';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<AccountPeriodResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get accounting settings\n     * \n     */\n    public getAccountingSettingsWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<AccountingSettingsResponse>> {\n        const path = this.basePath + '/api/v3/admin/accounting';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<AccountingSettingsResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get license details.\n     * \n     */\n    public getLicenseDetailsWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<LicenseResponse>> {\n        const path = this.basePath + '/api/v3/admin/license';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<LicenseResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieve the organization logo, if configured. Only URLs or JPEG, PNG, and SVG images are acceptable organization logos. If the saved base64 image is of a different file type, it will return an error.\n     * \n     */\n    public getOrganizationLogoWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<SingleValue>> {\n        const path = this.basePath + '/api/v3/admin/logo';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<SingleValue>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get the system reporting settings\n     * \n     */\n    public getReportingSettingsWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ReportingSettingResponse>> {\n        const path = this.basePath + '/api/v202305/admin/reportingSettings';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ReportingSettingResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * \n     * \n     */\n    public getSystemSettingsWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<AdminSettingsResponse>>> {\n        const path = this.basePath + '/api/v3/admin/systemsetting';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<AdminSettingsResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get system settings\n     * \n     */\n    public getSystemSettingsNewWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<SystemSettingsResponse>> {\n        const path = this.basePath + '/api/v3/admin/systemSettings';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<SystemSettingsResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Fire a custom application action webhook\n     * \n     * @param webhookId The identifier for the webhook being fired\n     */\n    public processCustomAppActionWithHttpInfo(webhookId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<WebhookLogDetailsResponse>> {\n        const path = this.basePath + '/api/v3/admin/customapplicationaction/${webhookId}'\n                    .replace('${' + 'webhookId' + '}', String(webhookId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'webhookId' is not null or undefined\n        if (webhookId === null || webhookId === undefined) {\n            throw new Error('Required parameter webhookId was null or undefined when calling processCustomAppAction.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<WebhookLogDetailsResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Set the system reporting settings\n     * \n     * @param body \n     */\n    public setReportingSettingsWithHttpInfo(body?: ReportingSettingRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ReportingSettingResponse>> {\n        const path = this.basePath + '/api/v202305/admin/reportingSettings';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ReportingSettingResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * \n     * \n     * @param body \n     */\n    public updateSystemSettingsWithHttpInfo(body?: Array<AdminSettingsRequest>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<AdminSettingsResponse>>> {\n        const path = this.basePath + '/api/v3/admin/systemsetting';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<AdminSettingsResponse>>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { FilterResponse } from '../model/filterResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class ApiService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Get filters for an API\n     * \n     * @param apiId The api Id\n     */\n    public getApiFilters(apiId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<FilterResponse>> {\n        return this.getApiFiltersWithHttpInfo(apiId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<FilterResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Get filters for an API\n     * \n     * @param apiId The api Id\n     */\n    public getApiFiltersWithHttpInfo(apiId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<FilterResponse>>> {\n        const path = this.basePath + '/api/v202410/api/${apiId}/filter'\n                    .replace('${' + 'apiId' + '}', String(apiId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'apiId' is not null or undefined\n        if (apiId === null || apiId === undefined) {\n            throw new Error('Required parameter apiId was null or undefined when calling getApiFilters.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<FilterResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { ApiKeyCreateRequest } from '../model/apiKeyCreateRequest';\nimport { ApiKeyCreateResponse } from '../model/apiKeyCreateResponse';\nimport { ApiKeyEditRequest } from '../model/apiKeyEditRequest';\nimport { ApiKeyResponse } from '../model/apiKeyResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class ApiKeyService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Create a new API key\n     * \n     * @param body \n     */\n    public createApiKey(body?: ApiKeyCreateRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ApiKeyCreateResponse> {\n        return this.createApiKeyWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ApiKeyCreateResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete an API key\n     * \n     * @param apiKeyId \n     */\n    public deleteApiKey(apiKeyId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteApiKeyWithHttpInfo(apiKeyId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit the name and description of an api key\n     * \n     * @param apiKeyId \n     * @param body \n     */\n    public editApiKey(apiKeyId: number, body?: ApiKeyEditRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ApiKeyResponse> {\n        return this.editApiKeyWithHttpInfo(apiKeyId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ApiKeyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get an API key\n     * \n     * @param apiKeyId \n     */\n    public getApiKey(apiKeyId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ApiKeyResponse> {\n        return this.getApiKeyWithHttpInfo(apiKeyId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ApiKeyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a list of all available API keys\n     * \n     * @param filter \n     */\n    public getApiKeys(filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<ApiKeyResponse>> {\n        return this.getApiKeysWithHttpInfo(filter, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<ApiKeyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Create a new API key\n     * \n     * @param body \n     */\n    public createApiKeyWithHttpInfo(body?: ApiKeyCreateRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ApiKeyCreateResponse>> {\n        const path = this.basePath + '/api/v3/apiKey';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ApiKeyCreateResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Delete an API key\n     * \n     * @param apiKeyId \n     */\n    public deleteApiKeyWithHttpInfo(apiKeyId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/apiKey/${apiKeyId}'\n                    .replace('${' + 'apiKeyId' + '}', String(apiKeyId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'apiKeyId' is not null or undefined\n        if (apiKeyId === null || apiKeyId === undefined) {\n            throw new Error('Required parameter apiKeyId was null or undefined when calling deleteApiKey.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Edit the name and description of an api key\n     * \n     * @param apiKeyId \n     * @param body \n     */\n    public editApiKeyWithHttpInfo(apiKeyId: number, body?: ApiKeyEditRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ApiKeyResponse>> {\n        const path = this.basePath + '/api/v3/apiKey/${apiKeyId}'\n                    .replace('${' + 'apiKeyId' + '}', String(apiKeyId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'apiKeyId' is not null or undefined\n        if (apiKeyId === null || apiKeyId === undefined) {\n            throw new Error('Required parameter apiKeyId was null or undefined when calling editApiKey.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ApiKeyResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Get an API key\n     * \n     * @param apiKeyId \n     */\n    public getApiKeyWithHttpInfo(apiKeyId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ApiKeyResponse>> {\n        const path = this.basePath + '/api/v3/apiKey/${apiKeyId}'\n                    .replace('${' + 'apiKeyId' + '}', String(apiKeyId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'apiKeyId' is not null or undefined\n        if (apiKeyId === null || apiKeyId === undefined) {\n            throw new Error('Required parameter apiKeyId was null or undefined when calling getApiKey.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ApiKeyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a list of all available API keys\n     * \n     * @param filter \n     */\n    public getApiKeysWithHttpInfo(filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<ApiKeyResponse>>> {\n        const path = this.basePath + '/api/v3/apiKey';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<ApiKeyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { AuditSettingsRequest } from '../model/auditSettingsRequest';\nimport { AuditSettingsResponse } from '../model/auditSettingsResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class AuditService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Gets all audit settings\n     * \n     */\n    public getAuditSettings(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<AuditSettingsResponse> {\n        return this.getAuditSettingsWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<AuditSettingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Re-run audits on a set of bills Only a subset of audits are run. The audits that run are the ones that are affected by bill history Also the owner audit setting and any account level audit setting overrides will be applied Resolved flag issues and flags could get re-flagged because of this action If the audit setting is set to Flag and Hold, the bill will get Held from export\n     * \n     * @param rerunResolvedIssues When true, resolved issues can be re-flagged. When false, resolved issues are not re-flagged. Defaults to true.\n     * @param body The list of bills to audit\n     */\n    public rerunAudits(rerunResolvedIssues?: boolean, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.rerunAuditsWithHttpInfo(rerunResolvedIssues, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Re-run audits on a set of bills Only a subset of audits are run. The audits that run are the ones that are affected by bill history Also the owner audit setting and any account level audit setting overrides will be applied Resolved flag issues and flags could get re-flagged because of this action If the audit setting is set to Flag and Hold, the bill will get Held from export\n     * \n     * @param body The list of bills to audit\n     */\n    public rerunAudits_1(body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.rerunAudits_1WithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Update audit settings\n     *  __Setting Status Descriptions:__  | Setting Status | Description | | -------------- | ----------- | | Check          | If this audit fails affected bills are flagged  | | Hold           | If this audit fails affected bills are flagged and held from export  | | Skip           | This audit is skipped  |\n     * @param body The new state of the audit settings\n     */\n    public updateAuditSettings(body?: AuditSettingsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<AuditSettingsResponse> {\n        return this.updateAuditSettingsWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<AuditSettingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Gets all audit settings\n     * \n     */\n    public getAuditSettingsWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<AuditSettingsResponse>> {\n        const path = this.basePath + '/api/v202104/audit';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<AuditSettingsResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Re-run audits on a set of bills Only a subset of audits are run. The audits that run are the ones that are affected by bill history Also the owner audit setting and any account level audit setting overrides will be applied Resolved flag issues and flags could get re-flagged because of this action If the audit setting is set to Flag and Hold, the bill will get Held from export\n     * \n     * @param rerunResolvedIssues When true, resolved issues can be re-flagged. When false, resolved issues are not re-flagged. Defaults to true.\n     * @param body The list of bills to audit\n     */\n    public rerunAuditsWithHttpInfo(rerunResolvedIssues?: boolean, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202603/audit/rerunAudits';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (rerunResolvedIssues !== undefined) {\n            queryParameters = queryParameters.set('rerunResolvedIssues', <any>rerunResolvedIssues);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Re-run audits on a set of bills Only a subset of audits are run. The audits that run are the ones that are affected by bill history Also the owner audit setting and any account level audit setting overrides will be applied Resolved flag issues and flags could get re-flagged because of this action If the audit setting is set to Flag and Hold, the bill will get Held from export\n     * \n     * @param body The list of bills to audit\n     */\n    public rerunAudits_1WithHttpInfo(body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202508/audit/rerunAudits';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Update audit settings\n     *  __Setting Status Descriptions:__  | Setting Status | Description | | -------------- | ----------- | | Check          | If this audit fails affected bills are flagged  | | Hold           | If this audit fails affected bills are flagged and held from export  | | Skip           | This audit is skipped  |\n     * @param body The new state of the audit settings\n     */\n    public updateAuditSettingsWithHttpInfo(body?: AuditSettingsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<AuditSettingsResponse>> {\n        const path = this.basePath + '/api/v202506/audit';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<AuditSettingsResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { LoginRequest } from '../model/loginRequest';\nimport { LoginResponse } from '../model/loginResponse';\nimport { SingleValue } from '../model/singleValue';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class AuthenticationService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * \n     * \n     */\n    public beta(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<{ [key: string]: boolean; }> {\n        return this.betaWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<{ [key: string]: boolean; }>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * My.EnergyCap.Com needs a way to get a token from a partition name. Pass in a partition, create and return a token for provided partition.\n     * \n     * @param partition \n     */\n    public createTokenForPartition(partition?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<SingleValue> {\n        return this.createTokenForPartitionWithHttpInfo(partition, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<SingleValue>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * \n     * \n     * @param body \n     */\n    public login(body?: LoginRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<LoginResponse> {\n        return this.loginWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<LoginResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Logout user- if they were logged in using a cookie\n     * \n     */\n    public logout(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.logoutWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * \n     * \n     */\n    public betaWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<{ [key: string]: boolean; }>> {\n        const path = this.basePath + '/api/internal/beta';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<{ [key: string]: boolean; }>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * My.EnergyCap.Com needs a way to get a token from a partition name. Pass in a partition, create and return a token for provided partition.\n     * \n     * @param partition \n     */\n    public createTokenForPartitionWithHttpInfo(partition?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<SingleValue>> {\n        const path = this.basePath + '/api/v3/exchange/eco';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (partition !== undefined) {\n            queryParameters = queryParameters.set('partition', <any>partition);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<SingleValue>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * \n     * \n     * @param body \n     */\n    public loginWithHttpInfo(body?: LoginRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<LoginResponse>> {\n        const path = this.basePath + '/api/v3/login';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<LoginResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Logout user- if they were logged in using a cookie\n     * \n     */\n    public logoutWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/logout';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Post, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { BatchCreate } from '../model/batchCreate';\nimport { BatchEdit } from '../model/batchEdit';\nimport { BatchLogResponse } from '../model/batchLogResponse';\nimport { BatchResponse } from '../model/batchResponse';\nimport { DistributeAccountChargesBase } from '../model/distributeAccountChargesBase';\nimport { UpdateBatchStatusRequest } from '../model/updateBatchStatusRequest';\nimport { UpdateResult } from '../model/updateResult';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class BatchService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * \n     * \n     * @param batchId \n     */\n    public closeBatch(batchId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BatchResponse> {\n        return this.closeBatchWithHttpInfo(batchId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BatchResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * \n     * \n     * @param batchId \n     */\n    public deleteBatch(batchId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteBatchWithHttpInfo(batchId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * For each bill in the provided batch which has account-level charges, distribute these account charges amongst the meters on the bill. This is done proportionally by meter use or cost, depending on the split basis. Maximum of 10000 bills can be processed at one time.\n     * \n     * @param batchId ID for the batch containing bills for which account charges will be distributed to meters\n     * @param body Distribution information\n     */\n    public distributeAccountChargesToMetersForBillsInBatch(batchId: number, body?: DistributeAccountChargesBase, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.distributeAccountChargesToMetersForBillsInBatchWithHttpInfo(batchId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * \n     * \n     * @param batchId \n     * @param body \n     */\n    public editBatch(batchId: number, body?: BatchEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BatchResponse> {\n        return this.editBatchWithHttpInfo(batchId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BatchResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * \n     * \n     * @param batchId \n     */\n    public getBatch(batchId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BatchResponse> {\n        return this.getBatchWithHttpInfo(batchId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BatchResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all move operation logs for a specific batch\n     * \n     * @param batchId Batch identifier\n     */\n    public getBatchLogs(batchId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BatchLogResponse> {\n        return this.getBatchLogsWithHttpInfo(batchId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BatchLogResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * \n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getBatches(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BatchResponse>> {\n        return this.getBatchesWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BatchResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Opens a new batch. If there are other open batches for this user,  and CloseExistingBatch is true, closes those batches before creating the new batch.  Returns the batch response DTO.\n     * \n     * @param body The batch to create\n     */\n    public openBatch(body?: BatchCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BatchResponse> {\n        return this.openBatchWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BatchResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Update the status of a batch. Requesting user must have BillAndBatches Create to update their own batch or to open another user&#39;s pending batch. User must have BillsAndBatches Manage to update another user&#39;s batch to closed or pending. If opening another user&#39;s batch,      the requesting user&#39;s open batches (if any) will be set to Pending status if LeaveOpenBatchesAsIs is not set or is false.     the requesting user&#39;s open batches (if any) will be left open if LeaveOpenBatchesAsIs is true.   See &#39;Batch Statuses&#39; section below for more information.\n     *  __Batch Statuses:__  | Batch Status   | Description | | -------------- | ----------- | | Open           | Batch must currently be pending. Un-voids all bills in the batch. | | Pending        | Batch must currently be open. Voids all bills in the batch.  | | Closed         | Batch must currently be open or pending. If the batch was pending, un-voids all bills in the batch.  |\n     * @param batchId ID for the batch to set status\n     * @param body The new status, (optional) note on the batch, (optional) LeaveOpenBatchesAsIs property. See &#39;Batch Statuses&#39; section below for available statuses.\n     */\n    public updateBatchStatus(batchId: number, body?: UpdateBatchStatusRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.updateBatchStatusWithHttpInfo(batchId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * \n     * \n     * @param batchId \n     */\n    public closeBatchWithHttpInfo(batchId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BatchResponse>> {\n        const path = this.basePath + '/api/v3/batch/close/${batchId}'\n                    .replace('${' + 'batchId' + '}', String(batchId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'batchId' is not null or undefined\n        if (batchId === null || batchId === undefined) {\n            throw new Error('Required parameter batchId was null or undefined when calling closeBatch.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BatchResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * \n     * \n     * @param batchId \n     */\n    public deleteBatchWithHttpInfo(batchId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/batch/${batchId}'\n                    .replace('${' + 'batchId' + '}', String(batchId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'batchId' is not null or undefined\n        if (batchId === null || batchId === undefined) {\n            throw new Error('Required parameter batchId was null or undefined when calling deleteBatch.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * For each bill in the provided batch which has account-level charges, distribute these account charges amongst the meters on the bill. This is done proportionally by meter use or cost, depending on the split basis. Maximum of 10000 bills can be processed at one time.\n     * \n     * @param batchId ID for the batch containing bills for which account charges will be distributed to meters\n     * @param body Distribution information\n     */\n    public distributeAccountChargesToMetersForBillsInBatchWithHttpInfo(batchId: number, body?: DistributeAccountChargesBase, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v202104/batch/${batchId}/distributeAccountCharges'\n                    .replace('${' + 'batchId' + '}', String(batchId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'batchId' is not null or undefined\n        if (batchId === null || batchId === undefined) {\n            throw new Error('Required parameter batchId was null or undefined when calling distributeAccountChargesToMetersForBillsInBatch.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * \n     * \n     * @param batchId \n     * @param body \n     */\n    public editBatchWithHttpInfo(batchId: number, body?: BatchEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BatchResponse>> {\n        const path = this.basePath + '/api/v3/batch/${batchId}'\n                    .replace('${' + 'batchId' + '}', String(batchId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'batchId' is not null or undefined\n        if (batchId === null || batchId === undefined) {\n            throw new Error('Required parameter batchId was null or undefined when calling editBatch.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BatchResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * \n     * \n     * @param batchId \n     */\n    public getBatchWithHttpInfo(batchId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BatchResponse>> {\n        const path = this.basePath + '/api/v3/batch/${batchId}'\n                    .replace('${' + 'batchId' + '}', String(batchId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'batchId' is not null or undefined\n        if (batchId === null || batchId === undefined) {\n            throw new Error('Required parameter batchId was null or undefined when calling getBatch.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BatchResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all move operation logs for a specific batch\n     * \n     * @param batchId Batch identifier\n     */\n    public getBatchLogsWithHttpInfo(batchId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BatchLogResponse>> {\n        const path = this.basePath + '/api/v202509/batch/${batchId}/log'\n                    .replace('${' + 'batchId' + '}', String(batchId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'batchId' is not null or undefined\n        if (batchId === null || batchId === undefined) {\n            throw new Error('Required parameter batchId was null or undefined when calling getBatchLogs.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BatchLogResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * \n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getBatchesWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BatchResponse>>> {\n        const path = this.basePath + '/api/v3/batch';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BatchResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Opens a new batch. If there are other open batches for this user,  and CloseExistingBatch is true, closes those batches before creating the new batch.  Returns the batch response DTO.\n     * \n     * @param body The batch to create\n     */\n    public openBatchWithHttpInfo(body?: BatchCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BatchResponse>> {\n        const path = this.basePath + '/api/v3/batch';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BatchResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Update the status of a batch. Requesting user must have BillAndBatches Create to update their own batch or to open another user&#39;s pending batch. User must have BillsAndBatches Manage to update another user&#39;s batch to closed or pending. If opening another user&#39;s batch,      the requesting user&#39;s open batches (if any) will be set to Pending status if LeaveOpenBatchesAsIs is not set or is false.     the requesting user&#39;s open batches (if any) will be left open if LeaveOpenBatchesAsIs is true.   See &#39;Batch Statuses&#39; section below for more information.\n     *  __Batch Statuses:__  | Batch Status   | Description | | -------------- | ----------- | | Open           | Batch must currently be pending. Un-voids all bills in the batch. | | Pending        | Batch must currently be open. Voids all bills in the batch.  | | Closed         | Batch must currently be open or pending. If the batch was pending, un-voids all bills in the batch.  |\n     * @param batchId ID for the batch to set status\n     * @param body The new status, (optional) note on the batch, (optional) LeaveOpenBatchesAsIs property. See &#39;Batch Statuses&#39; section below for available statuses.\n     */\n    public updateBatchStatusWithHttpInfo(batchId: number, body?: UpdateBatchStatusRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202206/batch/${batchId}/status'\n                    .replace('${' + 'batchId' + '}', String(batchId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'batchId' is not null or undefined\n        if (batchId === null || batchId === undefined) {\n            throw new Error('Required parameter batchId was null or undefined when calling updateBatchStatus.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { BillAccountMeterResponse } from '../model/billAccountMeterResponse';\nimport { BillAccountMeterStatisticsResponse } from '../model/billAccountMeterStatisticsResponse';\nimport { BillAccrualExclusionRequest } from '../model/billAccrualExclusionRequest';\nimport { BillActionApprove } from '../model/billActionApprove';\nimport { BillActionCustom } from '../model/billActionCustom';\nimport { BillActionDelete } from '../model/billActionDelete';\nimport { BillActionExportHold } from '../model/billActionExportHold';\nimport { BillActionHeaderUpdate } from '../model/billActionHeaderUpdate';\nimport { BillActionMove } from '../model/billActionMove';\nimport { BillActionSplit } from '../model/billActionSplit';\nimport { BillActionVoid } from '../model/billActionVoid';\nimport { BillCreate } from '../model/billCreate';\nimport { BillDeleteActionResult } from '../model/billDeleteActionResult';\nimport { BillEdit } from '../model/billEdit';\nimport { BillEntryResponse } from '../model/billEntryResponse';\nimport { BillExport } from '../model/billExport';\nimport { BillHistoryResponse } from '../model/billHistoryResponse';\nimport { BillIdResponse } from '../model/billIdResponse';\nimport { BillLineTypeMappingResponse } from '../model/billLineTypeMappingResponse';\nimport { BillPaymentDetailsFileResponse } from '../model/billPaymentDetailsFileResponse';\nimport { BillPaymentDetailsOptionalItem } from '../model/billPaymentDetailsOptionalItem';\nimport { BillPaymentDetailsOptionalResponse } from '../model/billPaymentDetailsOptionalResponse';\nimport { BillPaymentEventCreate } from '../model/billPaymentEventCreate';\nimport { BillPaymentEventResponse } from '../model/billPaymentEventResponse';\nimport { BillResponse } from '../model/billResponse';\nimport { BillReversalRequest } from '../model/billReversalRequest';\nimport { BillUnexport } from '../model/billUnexport';\nimport { BodylineResponse } from '../model/bodylineResponse';\nimport { ChargebackTaskResponse } from '../model/chargebackTaskResponse';\nimport { DistributeAccountChargesToBillsRequest } from '../model/distributeAccountChargesToBillsRequest';\nimport { JsonBillExportResponse } from '../model/jsonBillExportResponse';\nimport { ListIds } from '../model/listIds';\nimport { MoveBillsDestination } from '../model/moveBillsDestination';\nimport { UDFFieldChild } from '../model/uDFFieldChild';\nimport { UDFValue } from '../model/uDFValue';\nimport { UpdateResult } from '../model/updateResult';\nimport { WebhookLogDetailsResponse } from '../model/webhookLogDetailsResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class BillService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Update approved flag for the given billIDs\n     * \n     * @param body approve action\n     */\n    public billActionApprove(body?: BillActionApprove, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.billActionApproveWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete given billIDs\n     * \n     * @param body \n     */\n    public billActionDelete(body?: BillActionDelete, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BillDeleteActionResult> {\n        return this.billActionDeleteWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BillDeleteActionResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Update export hold flag for the given billIDs\n     * \n     * @param body export hold action\n     */\n    public billActionExportHold(body?: BillActionExportHold, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.billActionExportHoldWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Run the bill split processor on the given list of bills. Optional note can be provided. Optional batch settings can be provided that will allow custom batchcode and bill headers for the destination bills\n     * \n     * @param body \n     */\n    public billActionSplit(body?: BillActionSplit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ChargebackTaskResponse> {\n        return this.billActionSplitWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ChargebackTaskResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Update all headers for a given list of bills If a new begin date or end date is being set, bills that would have end dates on or before their begin date will not be updated If the user does not have permission to edit exported or approved bills, those bills will not be updated Bill audits won&#39;t be fired\n     * \n     * @param body Bill header update action\n     */\n    public billActionUpdateHeaders(body?: BillActionHeaderUpdate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.billActionUpdateHeadersWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Update void flag for the given billIDs\n     * \n     * @param body Void action\n     */\n    public billActionVoid(body?: BillActionVoid, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.billActionVoidWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * For each record in the request body, update the bill payment details.\n     * \n     * @param body List of Bill payment details\n     */\n    public billPaymentDetails(body?: Array<BillPaymentDetailsOptionalItem>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BillPaymentDetailsOptionalResponse> {\n        return this.billPaymentDetailsWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BillPaymentDetailsOptionalResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * For each bill in the import file, update the bill payment details.\n     * The import file needs to be a comma separated file.  All lines are data lines (No header line allowed).  The file structure is as follows- Bill Id (required), Check Number (required), Check Date YYYYMMDD format (required), Pay Status (upto 10 characters- do not use commas) (required), Cleared Date YYYYMMDD format (optional), Accounting Period YYYYMM (optional), comment (optional) - comment will be ignored. Example data:12345,7098,20210801,Procesed,20210806,202107,July bill paid via AP   For this request, please use application/octet-stream as Content-Type and include your file as binary in the body of the request. ///\n     * @param body Binary data containing the file contents\n     */\n    public billPaymentDetailsFile(body?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BillPaymentDetailsFileResponse> {\n        return this.billPaymentDetailsFileWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BillPaymentDetailsFileResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Cleans a single bill. The dirty flag of the bill is not taken into account.\n     * \n     * @param billId \n     */\n    public cleanABill(billId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.cleanABillWithHttpInfo(billId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Cleans all dirty bills, and any bills created outside of version 7.\n     * \n     */\n    public cleanDirtyBills(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.cleanDirtyBillsWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Create a new bill\n     * Creates a bill. The created bill gets audited. If any audits fail, the bill will get flagged. If the audit setting for any of the failed audits is set to Fail and Hold, the bill will be set as \\&quot;Hold from Accounting Export\\&quot; If saveAsResolved property is set to true, the flagged bill will be automatically resolved and Released for Accounting Export\n     * @param saveAsResolved Controls whether or not any failed audits automatically get marked as resolved\n     * @param comment Optional comment to explain why the audit is being auto resolved\n     * @param body \n     */\n    public createBill(saveAsResolved?: boolean, comment?: string, body?: BillCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BillIdResponse> {\n        return this.createBillWithHttpInfo(saveAsResolved, comment, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BillIdResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Persist an payment event for several bills\n     * \n     * @param body Payment event creation payload\n     */\n    public createBillPaymentEvent(body?: BillPaymentEventCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BillPaymentEventResponse> {\n        return this.createBillPaymentEventWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BillPaymentEventResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * For each bill in the request body which has account-level charges, distribute these account charges amongst the meters on the bill. This is done proportionally by meter use or cost, depending on the split basis. Maximum of 10000 bills can be processed at one time.\n     * \n     * @param body Distribution information\n     */\n    public distributeAccountChargesToMeters(body?: DistributeAccountChargesToBillsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.distributeAccountChargesToMetersWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Download file for a bill custom field\n     * \n     * @param billId The id of the bill\n     * @param udfId The id of the custom field\n     */\n    public downloadBillCustomFieldFile(billId: number, udfId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.downloadBillCustomFieldFileWithHttpInfo(billId, udfId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit an existing bill\n     * If enabled, audits will be processed for the edited bill. If specified, any issues previously resolved will be reopened.  Below are some clarifications regarding the rules for editing an existing bill: * Bills which are marked as \\&quot;void\\&quot; may not be edited * Users without UpdateApprovedBills.Edit permission may not edit bills marked as \\&quot;Approved\\&quot; * Users without ExportBills.Edit permission may not edit bills exported to AP or GL * Bills must have at least one line item * If configured, required bill headers will be enforced\n     * @param billId \n     * @param body \n     */\n    public editBill(billId: number, body?: BillEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BillIdResponse> {\n        return this.editBillWithHttpInfo(billId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BillIdResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit the custom field values on a bill\n     * \n     * @param billId The id of the bill\n     * @param body The list of udf values being edited\n     */\n    public editBillCustomFields(billId: number, body?: Array<UDFValue>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<UDFFieldChild>> {\n        return this.editBillCustomFieldsWithHttpInfo(billId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<UDFFieldChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves the text of a standard EnergyCAP bill export ini file for AP, GL and Payment purposes. Payment details will be included in the profile if workflow settings for the bill export are configured to include payment details.\n     * \n     * @param exportMode Specifies whether the profile should be for AP, GL or Payment. Pass in \\&quot;AP\\&quot; for AP Profile, \\&quot;GL\\&quot; for GL Profile or \\&quot;Payment\\&quot; for Payment Profile. If this is not included in the request, it defaults to AP.\n     */\n    public exportBillProfile(exportMode?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.exportBillProfileWithHttpInfo(exportMode, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves text of a standard EnergyCAP bill export file for AP, GL and payment purposes. Maximum of 10000 bills can be processed at one time. Only bills with the following conditions are included in the export file:  1) approved bills (if the approval system is enabled in workflow settings) 2) bill is in a closed batch (if after batch or after batch approval is set in the workflow settings) 3) bill is not held for export 4) bill is not void 5) bill is within the user&#39;s topmost setting. 6) bill in not already exported\n     * \n     * @param body \n     */\n    public exportBills(body?: BillExport, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.exportBillsWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves a JSON array of bill details.\n     * \n     * @param body List of bill IDs\n     */\n    public exportBillsAsJson(body?: BillExport, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<JsonBillExportResponse>> {\n        return this.exportBillsAsJsonWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<JsonBillExportResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves bill history for an account\n     * \n     * @param accountId accountId to get bill history for\n     * @param billingPeriod required: billingPeriod in yyyymm format to return history from\n     * @param numberOfYears optional: Number of years of history to return.  Defaults to 5\n     * @param includeVoid optional: Should voided bills be included.  Defaults to false\n     * @param includeAccrual optional: Should accrual bills be included.  Defaults to false\n     */\n    public getAccountBillHistory(accountId: number, billingPeriod?: number, numberOfYears?: number, includeVoid?: boolean, includeAccrual?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BillHistoryResponse>> {\n        return this.getAccountBillHistoryWithHttpInfo(accountId, billingPeriod, numberOfYears, includeVoid, includeAccrual, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BillHistoryResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all bill&#39;s bodylines\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getAllBillsBodylines(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BodylineResponse>> {\n        return this.getAllBillsBodylinesWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BodylineResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves one bill\n     * \n     * @param billId The bill identifier\n     */\n    public getBill(billId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BillResponse> {\n        return this.getBillWithHttpInfo(billId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BillResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves bill account meter record for a specific billId\n     * \n     * @param billId The bill identifier\n     */\n    public getBillAccountMeterActualByBillId(billId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BillAccountMeterResponse>> {\n        return this.getBillAccountMeterActualByBillIdWithHttpInfo(billId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BillAccountMeterResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves bill account meter calendarized record for a specific billId\n     * \n     * @param billId The bill identifier\n     */\n    public getBillAccountMeterCalendarizedByBillId(billId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BillAccountMeterResponse>> {\n        return this.getBillAccountMeterCalendarizedByBillIdWithHttpInfo(billId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BillAccountMeterResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves bill account meter normalized record for a specific billId\n     * \n     * @param billId The bill identifier\n     */\n    public getBillAccountMeterNormalizedByBillId(billId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BillAccountMeterResponse>> {\n        return this.getBillAccountMeterNormalizedByBillIdWithHttpInfo(billId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BillAccountMeterResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves bill account meter statistics record for a specific billId\n     * \n     * @param billId The bill identifier\n     */\n    public getBillAccountMeterStatisticsByBillId(billId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BillAccountMeterStatisticsResponse>> {\n        return this.getBillAccountMeterStatisticsByBillIdWithHttpInfo(billId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BillAccountMeterStatisticsResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves bill account meter records\n     * \n     * @param filter Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getBillAccountMetersActual(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BillAccountMeterResponse>> {\n        return this.getBillAccountMetersActualWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BillAccountMeterResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves bill account meter calendarized records\n     * \n     * @param filter Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getBillAccountMetersCalendarized(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BillAccountMeterResponse>> {\n        return this.getBillAccountMetersCalendarizedWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BillAccountMeterResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves bill account meter normalized records\n     * \n     * @param filter Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getBillAccountMetersNormalized(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BillAccountMeterResponse>> {\n        return this.getBillAccountMetersNormalizedWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BillAccountMeterResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves bill account meter statistics records\n     * \n     * @param filter Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getBillAccountMetersStatistics(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BillAccountMeterStatisticsResponse>> {\n        return this.getBillAccountMetersStatisticsWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BillAccountMeterStatisticsResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves one bill&#39;s bodylines\n     * \n     * @param billId The bill identifier\n     */\n    public getBillBodylines(billId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BodylineResponse>> {\n        return this.getBillBodylinesWithHttpInfo(billId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BodylineResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get custom field values for a bill\n     * \n     * @param billId The id of the bill\n     */\n    public getBillCustomFields(billId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<UDFFieldChild>> {\n        return this.getBillCustomFieldsWithHttpInfo(billId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<UDFFieldChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all data necessary to load the bill entry screen\n     * \n     * @param accountId \n     * @param beginDate \n     * @param batchId \n     */\n    public getBillEntryData(accountId: number, beginDate?: Date, batchId?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BillEntryResponse> {\n        return this.getBillEntryDataWithHttpInfo(accountId, beginDate, batchId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BillEntryResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all data necessary to load the bill entry screen\n     * \n     * @param billId \n     */\n    public getBillEntryDataByBillId(billId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BillEntryResponse> {\n        return this.getBillEntryDataByBillIdWithHttpInfo(billId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BillEntryResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves bill history from starting at the billId billing period\n     * \n     * @param billId billId to get bill history for\n     * @param numberOfYears optional: Number of years of history to return.  Defaults to 5\n     * @param includeVoid optional: Should voided bills be included.  Defaults to false\n     * @param includeAccrual optional: Should accrual bills be included.  Defaults to false\n     */\n    public getBillHistory(billId: number, numberOfYears?: number, includeVoid?: boolean, includeAccrual?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BillHistoryResponse>> {\n        return this.getBillHistoryWithHttpInfo(billId, numberOfYears, includeVoid, includeAccrual, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BillHistoryResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves a list of bill line type mappings\n     * \n     */\n    public getBillLineTypeMappings(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BillLineTypeMappingResponse>> {\n        return this.getBillLineTypeMappingsWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BillLineTypeMappingResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves the payment events for a bill\n     * \n     * @param billId Identifier for the bill\n     */\n    public getBillPaymentEvents(billId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BillPaymentEventResponse>> {\n        return this.getBillPaymentEventsWithHttpInfo(billId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BillPaymentEventResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves an array of bills. The array of bills can be filtered by a number of criteria. See the filter property for more details\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getBills(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BillResponse>> {\n        return this.getBillsWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BillResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves a list of accounts that contain meters of ALL of the commodities represented by the given Bills\n     * \n     * @param body List of Bill Ids to be used to determine the commodities to be matched on the destination accounts.\n     */\n    public getPossibleDestinationAccounts(body?: ListIds, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<MoveBillsDestination> {\n        return this.getPossibleDestinationAccountsWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<MoveBillsDestination>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Moves the set of bills to the specified batch   The bills being moved could be in an open, pending or closed batch   The specified batch should be an open or pending batch   All the bills being moved should be in the same batch Moving from a pending to an open will cause the bills to get un-voided Moving from an open/closed to a pending will cause the bills to get voided If bills were in a closed batch, and downstream processes had already run, those processes will not get reversed\n     * \n     * @param batchId Batch to move to\n     * @param body List of bills to be moved to the new batch\n     */\n    public moveBatch(batchId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.moveBatchWithHttpInfo(batchId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Moves the list of given bills to the specified destination account and meters. Each source Meter will be matched with  a corresponding destination Meter based on commodity.\n     * \n     * @param body DTO containing a list of Bill Ids, the destination Account Id, the destination AcountMeter Ids, a flag  indicating whether the Account GL information should be updated, a flag indicating whether the Meter GL information should be updated, and a flag indicating whether linked emissions record scope cateogory and GHG factors should be updated. WARNING: If emissions record scope categories and GHG factors are updated, any notes and/or attachments on those emissions records will be lost.\n     */\n    public moveBillsToAccount(body?: BillActionMove, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.moveBillsToAccountWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Fires a custom bill action. Custom bill actions are setup as webhooks\n     * \n     * @param body \n     */\n    public processBillCustomAction(body?: BillActionCustom, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<WebhookLogDetailsResponse> {\n        return this.processBillCustomActionWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<WebhookLogDetailsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Creates reversal bills for the given bill ids considering multiple open batch options.\n     * \n     * @param body \n     */\n    public reverseBillsWithMultipleOpenBatchOptions(body?: BillReversalRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.reverseBillsWithMultipleOpenBatchOptionsWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Excludes or undoes exclusion of bills from accruals\n     * \n     * @param body \n     */\n    public setBillAccrualExclusion(body?: BillAccrualExclusionRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.setBillAccrualExclusionWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Marks one or more bills as unexported.\n     * \n     * @param body An array of bill ids to be marked as unexported and export mode\n     */\n    public unexportBills(body?: BillUnexport, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.unexportBillsWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Marks one or more bills as unexported. The bills to be unexported are selected based on the guid passed in.  The guid is generated when bills are exported via the bill export end point, and the guid is returned in the header of the response in a field named Ec-Guid.\n     * \n     * @param billExportGuid The identifier for the bills to be unexported\n     */\n    public unexportBillsByGuid(billExportGuid: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.unexportBillsByGuidWithHttpInfo(billExportGuid, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Upload a file representing a bill image. The bill image file extension must match the settings in system data &#39;webbillimageext&#39;.\n     * \n     * @param billId The Bill ID associated with the file being uploaded.\n     * @param fileName The name of the file containing the bill image\n     * @param body Binary data containing the bill image\n     */\n    public uploadBillImage(billId: number, fileName?: string, body?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<string> {\n        return this.uploadBillImageWithHttpInfo(billId, fileName, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<string>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Update approved flag for the given billIDs\n     * \n     * @param body approve action\n     */\n    public billActionApproveWithHttpInfo(body?: BillActionApprove, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/bill/approve';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Delete given billIDs\n     * \n     * @param body \n     */\n    public billActionDeleteWithHttpInfo(body?: BillActionDelete, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BillDeleteActionResult>> {\n        const path = this.basePath + '/api/v3/bill/delete';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BillDeleteActionResult>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Update export hold flag for the given billIDs\n     * \n     * @param body export hold action\n     */\n    public billActionExportHoldWithHttpInfo(body?: BillActionExportHold, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/bill/exporthold';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Run the bill split processor on the given list of bills. Optional note can be provided. Optional batch settings can be provided that will allow custom batchcode and bill headers for the destination bills\n     * \n     * @param body \n     */\n    public billActionSplitWithHttpInfo(body?: BillActionSplit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ChargebackTaskResponse>> {\n        const path = this.basePath + '/api/v3/bill/split';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ChargebackTaskResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Update all headers for a given list of bills If a new begin date or end date is being set, bills that would have end dates on or before their begin date will not be updated If the user does not have permission to edit exported or approved bills, those bills will not be updated Bill audits won&#39;t be fired\n     * \n     * @param body Bill header update action\n     */\n    public billActionUpdateHeadersWithHttpInfo(body?: BillActionHeaderUpdate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/bill/billHeaders';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Update void flag for the given billIDs\n     * \n     * @param body Void action\n     */\n    public billActionVoidWithHttpInfo(body?: BillActionVoid, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/bill/void';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * For each record in the request body, update the bill payment details.\n     * \n     * @param body List of Bill payment details\n     */\n    public billPaymentDetailsWithHttpInfo(body?: Array<BillPaymentDetailsOptionalItem>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BillPaymentDetailsOptionalResponse>> {\n        const path = this.basePath + '/api/v202401/bill/billPaymentDetails';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BillPaymentDetailsOptionalResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * For each bill in the import file, update the bill payment details.\n     * The import file needs to be a comma separated file.  All lines are data lines (No header line allowed).  The file structure is as follows- Bill Id (required), Check Number (required), Check Date YYYYMMDD format (required), Pay Status (upto 10 characters- do not use commas) (required), Cleared Date YYYYMMDD format (optional), Accounting Period YYYYMM (optional), comment (optional) - comment will be ignored. Example data:12345,7098,20210801,Procesed,20210806,202107,July bill paid via AP   For this request, please use application/octet-stream as Content-Type and include your file as binary in the body of the request. ///\n     * @param body Binary data containing the file contents\n     */\n    public billPaymentDetailsFileWithHttpInfo(body?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BillPaymentDetailsFileResponse>> {\n        const path = this.basePath + '/api/v202108/bill/billPaymentDetailsFile';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/octet-stream'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BillPaymentDetailsFileResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Cleans a single bill. The dirty flag of the bill is not taken into account.\n     * \n     * @param billId \n     */\n    public cleanABillWithHttpInfo(billId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/bill/cleanBill/${billId}'\n                    .replace('${' + 'billId' + '}', String(billId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'billId' is not null or undefined\n        if (billId === null || billId === undefined) {\n            throw new Error('Required parameter billId was null or undefined when calling cleanABill.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Cleans all dirty bills, and any bills created outside of version 7.\n     * \n     */\n    public cleanDirtyBillsWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/bill/cleanBill';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Create a new bill\n     * Creates a bill. The created bill gets audited. If any audits fail, the bill will get flagged. If the audit setting for any of the failed audits is set to Fail and Hold, the bill will be set as \\&quot;Hold from Accounting Export\\&quot; If saveAsResolved property is set to true, the flagged bill will be automatically resolved and Released for Accounting Export\n     * @param saveAsResolved Controls whether or not any failed audits automatically get marked as resolved\n     * @param comment Optional comment to explain why the audit is being auto resolved\n     * @param body \n     */\n    public createBillWithHttpInfo(saveAsResolved?: boolean, comment?: string, body?: BillCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BillIdResponse>> {\n        const path = this.basePath + '/api/v3/bill';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (saveAsResolved !== undefined) {\n            queryParameters = queryParameters.set('saveAsResolved', <any>saveAsResolved);\n        }\n\n        if (comment !== undefined) {\n            queryParameters = queryParameters.set('comment', <any>comment);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BillIdResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Persist an payment event for several bills\n     * \n     * @param body Payment event creation payload\n     */\n    public createBillPaymentEventWithHttpInfo(body?: BillPaymentEventCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BillPaymentEventResponse>> {\n        const path = this.basePath + '/api/v202504/bill/paymentEvent';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BillPaymentEventResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * For each bill in the request body which has account-level charges, distribute these account charges amongst the meters on the bill. This is done proportionally by meter use or cost, depending on the split basis. Maximum of 10000 bills can be processed at one time.\n     * \n     * @param body Distribution information\n     */\n    public distributeAccountChargesToMetersWithHttpInfo(body?: DistributeAccountChargesToBillsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v202104/bill/distributeAccountCharges';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Download file for a bill custom field\n     * \n     * @param billId The id of the bill\n     * @param udfId The id of the custom field\n     */\n    public downloadBillCustomFieldFileWithHttpInfo(billId: number, udfId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202202/bill/${billId}/udf/${udfId}/download'\n                    .replace('${' + 'billId' + '}', String(billId))\n                    .replace('${' + 'udfId' + '}', String(udfId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'billId' is not null or undefined\n        if (billId === null || billId === undefined) {\n            throw new Error('Required parameter billId was null or undefined when calling downloadBillCustomFieldFile.');\n        }\n        // verify required parameter 'udfId' is not null or undefined\n        if (udfId === null || udfId === undefined) {\n            throw new Error('Required parameter udfId was null or undefined when calling downloadBillCustomFieldFile.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Edit an existing bill\n     * If enabled, audits will be processed for the edited bill. If specified, any issues previously resolved will be reopened.  Below are some clarifications regarding the rules for editing an existing bill: * Bills which are marked as \\&quot;void\\&quot; may not be edited * Users without UpdateApprovedBills.Edit permission may not edit bills marked as \\&quot;Approved\\&quot; * Users without ExportBills.Edit permission may not edit bills exported to AP or GL * Bills must have at least one line item * If configured, required bill headers will be enforced\n     * @param billId \n     * @param body \n     */\n    public editBillWithHttpInfo(billId: number, body?: BillEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BillIdResponse>> {\n        const path = this.basePath + '/api/v202604/bill/${billId}'\n                    .replace('${' + 'billId' + '}', String(billId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'billId' is not null or undefined\n        if (billId === null || billId === undefined) {\n            throw new Error('Required parameter billId was null or undefined when calling editBill.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BillIdResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edit the custom field values on a bill\n     * \n     * @param billId The id of the bill\n     * @param body The list of udf values being edited\n     */\n    public editBillCustomFieldsWithHttpInfo(billId: number, body?: Array<UDFValue>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<UDFFieldChild>>> {\n        const path = this.basePath + '/api/v202202/bill/${billId}/udf'\n                    .replace('${' + 'billId' + '}', String(billId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'billId' is not null or undefined\n        if (billId === null || billId === undefined) {\n            throw new Error('Required parameter billId was null or undefined when calling editBillCustomFields.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<UDFFieldChild>>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Retrieves the text of a standard EnergyCAP bill export ini file for AP, GL and Payment purposes. Payment details will be included in the profile if workflow settings for the bill export are configured to include payment details.\n     * \n     * @param exportMode Specifies whether the profile should be for AP, GL or Payment. Pass in \\&quot;AP\\&quot; for AP Profile, \\&quot;GL\\&quot; for GL Profile or \\&quot;Payment\\&quot; for Payment Profile. If this is not included in the request, it defaults to AP.\n     */\n    public exportBillProfileWithHttpInfo(exportMode?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/bill/exportProfile';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (exportMode !== undefined) {\n            queryParameters = queryParameters.set('exportMode', <any>exportMode);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves text of a standard EnergyCAP bill export file for AP, GL and payment purposes. Maximum of 10000 bills can be processed at one time. Only bills with the following conditions are included in the export file:  1) approved bills (if the approval system is enabled in workflow settings) 2) bill is in a closed batch (if after batch or after batch approval is set in the workflow settings) 3) bill is not held for export 4) bill is not void 5) bill is within the user&#39;s topmost setting. 6) bill in not already exported\n     * \n     * @param body \n     */\n    public exportBillsWithHttpInfo(body?: BillExport, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/bill/export';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Retrieves a JSON array of bill details.\n     * \n     * @param body List of bill IDs\n     */\n    public exportBillsAsJsonWithHttpInfo(body?: BillExport, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<JsonBillExportResponse>>> {\n        const path = this.basePath + '/api/v202405/bill/export/json';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<JsonBillExportResponse>>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Retrieves bill history for an account\n     * \n     * @param accountId accountId to get bill history for\n     * @param billingPeriod required: billingPeriod in yyyymm format to return history from\n     * @param numberOfYears optional: Number of years of history to return.  Defaults to 5\n     * @param includeVoid optional: Should voided bills be included.  Defaults to false\n     * @param includeAccrual optional: Should accrual bills be included.  Defaults to false\n     */\n    public getAccountBillHistoryWithHttpInfo(accountId: number, billingPeriod?: number, numberOfYears?: number, includeVoid?: boolean, includeAccrual?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BillHistoryResponse>>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/billHistory'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling getAccountBillHistory.');\n        }\n        if (billingPeriod !== undefined) {\n            queryParameters = queryParameters.set('billingPeriod', <any>billingPeriod);\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (includeVoid !== undefined) {\n            queryParameters = queryParameters.set('includeVoid', <any>includeVoid);\n        }\n\n        if (includeAccrual !== undefined) {\n            queryParameters = queryParameters.set('includeAccrual', <any>includeAccrual);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BillHistoryResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all bill&#39;s bodylines\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getAllBillsBodylinesWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BodylineResponse>>> {\n        const path = this.basePath + '/api/v3/bill/bodyline';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BodylineResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves one bill\n     * \n     * @param billId The bill identifier\n     */\n    public getBillWithHttpInfo(billId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BillResponse>> {\n        const path = this.basePath + '/api/v3/bill/${billId}'\n                    .replace('${' + 'billId' + '}', String(billId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'billId' is not null or undefined\n        if (billId === null || billId === undefined) {\n            throw new Error('Required parameter billId was null or undefined when calling getBill.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BillResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves bill account meter record for a specific billId\n     * \n     * @param billId The bill identifier\n     */\n    public getBillAccountMeterActualByBillIdWithHttpInfo(billId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BillAccountMeterResponse>>> {\n        const path = this.basePath + '/api/v3/bill/${billId}/billaccountmeter/actual'\n                    .replace('${' + 'billId' + '}', String(billId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'billId' is not null or undefined\n        if (billId === null || billId === undefined) {\n            throw new Error('Required parameter billId was null or undefined when calling getBillAccountMeterActualByBillId.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BillAccountMeterResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves bill account meter calendarized record for a specific billId\n     * \n     * @param billId The bill identifier\n     */\n    public getBillAccountMeterCalendarizedByBillIdWithHttpInfo(billId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BillAccountMeterResponse>>> {\n        const path = this.basePath + '/api/v3/bill/${billId}/billaccountmeter/calendarized'\n                    .replace('${' + 'billId' + '}', String(billId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'billId' is not null or undefined\n        if (billId === null || billId === undefined) {\n            throw new Error('Required parameter billId was null or undefined when calling getBillAccountMeterCalendarizedByBillId.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BillAccountMeterResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves bill account meter normalized record for a specific billId\n     * \n     * @param billId The bill identifier\n     */\n    public getBillAccountMeterNormalizedByBillIdWithHttpInfo(billId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BillAccountMeterResponse>>> {\n        const path = this.basePath + '/api/v3/bill/${billId}/billaccountmeter/normalized'\n                    .replace('${' + 'billId' + '}', String(billId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'billId' is not null or undefined\n        if (billId === null || billId === undefined) {\n            throw new Error('Required parameter billId was null or undefined when calling getBillAccountMeterNormalizedByBillId.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BillAccountMeterResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves bill account meter statistics record for a specific billId\n     * \n     * @param billId The bill identifier\n     */\n    public getBillAccountMeterStatisticsByBillIdWithHttpInfo(billId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BillAccountMeterStatisticsResponse>>> {\n        const path = this.basePath + '/api/v3/bill/${billId}/billaccountmeter/statistics'\n                    .replace('${' + 'billId' + '}', String(billId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'billId' is not null or undefined\n        if (billId === null || billId === undefined) {\n            throw new Error('Required parameter billId was null or undefined when calling getBillAccountMeterStatisticsByBillId.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BillAccountMeterStatisticsResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves bill account meter records\n     * \n     * @param filter Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getBillAccountMetersActualWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BillAccountMeterResponse>>> {\n        const path = this.basePath + '/api/v3/bill/billaccountmeter/actual';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BillAccountMeterResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves bill account meter calendarized records\n     * \n     * @param filter Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getBillAccountMetersCalendarizedWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BillAccountMeterResponse>>> {\n        const path = this.basePath + '/api/v3/bill/billaccountmeter/calendarized';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BillAccountMeterResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves bill account meter normalized records\n     * \n     * @param filter Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getBillAccountMetersNormalizedWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BillAccountMeterResponse>>> {\n        const path = this.basePath + '/api/v3/bill/billaccountmeter/normalized';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BillAccountMeterResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves bill account meter statistics records\n     * \n     * @param filter Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getBillAccountMetersStatisticsWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BillAccountMeterStatisticsResponse>>> {\n        const path = this.basePath + '/api/v3/bill/billaccountmeter/statistics';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BillAccountMeterStatisticsResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves one bill&#39;s bodylines\n     * \n     * @param billId The bill identifier\n     */\n    public getBillBodylinesWithHttpInfo(billId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BodylineResponse>>> {\n        const path = this.basePath + '/api/v202208/bill/${billId}/bodyline'\n                    .replace('${' + 'billId' + '}', String(billId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'billId' is not null or undefined\n        if (billId === null || billId === undefined) {\n            throw new Error('Required parameter billId was null or undefined when calling getBillBodylines.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BodylineResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get custom field values for a bill\n     * \n     * @param billId The id of the bill\n     */\n    public getBillCustomFieldsWithHttpInfo(billId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<UDFFieldChild>>> {\n        const path = this.basePath + '/api/v202202/bill/${billId}/udf'\n                    .replace('${' + 'billId' + '}', String(billId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'billId' is not null or undefined\n        if (billId === null || billId === undefined) {\n            throw new Error('Required parameter billId was null or undefined when calling getBillCustomFields.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<UDFFieldChild>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all data necessary to load the bill entry screen\n     * \n     * @param accountId \n     * @param beginDate \n     * @param batchId \n     */\n    public getBillEntryDataWithHttpInfo(accountId: number, beginDate?: Date, batchId?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BillEntryResponse>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/billEntry'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling getBillEntryData.');\n        }\n        if (beginDate !== undefined) {\n            queryParameters = queryParameters.set('beginDate', <any>beginDate.toISOString());\n        }\n\n        if (batchId !== undefined) {\n            queryParameters = queryParameters.set('batchId', <any>batchId);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BillEntryResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all data necessary to load the bill entry screen\n     * \n     * @param billId \n     */\n    public getBillEntryDataByBillIdWithHttpInfo(billId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BillEntryResponse>> {\n        const path = this.basePath + '/api/v3/bill/${billId}/billEntry'\n                    .replace('${' + 'billId' + '}', String(billId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'billId' is not null or undefined\n        if (billId === null || billId === undefined) {\n            throw new Error('Required parameter billId was null or undefined when calling getBillEntryDataByBillId.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BillEntryResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves bill history from starting at the billId billing period\n     * \n     * @param billId billId to get bill history for\n     * @param numberOfYears optional: Number of years of history to return.  Defaults to 5\n     * @param includeVoid optional: Should voided bills be included.  Defaults to false\n     * @param includeAccrual optional: Should accrual bills be included.  Defaults to false\n     */\n    public getBillHistoryWithHttpInfo(billId: number, numberOfYears?: number, includeVoid?: boolean, includeAccrual?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BillHistoryResponse>>> {\n        const path = this.basePath + '/api/v3/bill/${billId}/billHistory'\n                    .replace('${' + 'billId' + '}', String(billId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'billId' is not null or undefined\n        if (billId === null || billId === undefined) {\n            throw new Error('Required parameter billId was null or undefined when calling getBillHistory.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (includeVoid !== undefined) {\n            queryParameters = queryParameters.set('includeVoid', <any>includeVoid);\n        }\n\n        if (includeAccrual !== undefined) {\n            queryParameters = queryParameters.set('includeAccrual', <any>includeAccrual);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BillHistoryResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves a list of bill line type mappings\n     * \n     */\n    public getBillLineTypeMappingsWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BillLineTypeMappingResponse>>> {\n        const path = this.basePath + '/api/v202406/bill/billLineTypeMapping';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BillLineTypeMappingResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves the payment events for a bill\n     * \n     * @param billId Identifier for the bill\n     */\n    public getBillPaymentEventsWithHttpInfo(billId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BillPaymentEventResponse>>> {\n        const path = this.basePath + '/api/v202504/bill/${billId}/paymentEvent'\n                    .replace('${' + 'billId' + '}', String(billId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'billId' is not null or undefined\n        if (billId === null || billId === undefined) {\n            throw new Error('Required parameter billId was null or undefined when calling getBillPaymentEvents.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BillPaymentEventResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves an array of bills. The array of bills can be filtered by a number of criteria. See the filter property for more details\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getBillsWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BillResponse>>> {\n        const path = this.basePath + '/api/v3/bill';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BillResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves a list of accounts that contain meters of ALL of the commodities represented by the given Bills\n     * \n     * @param body List of Bill Ids to be used to determine the commodities to be matched on the destination accounts.\n     */\n    public getPossibleDestinationAccountsWithHttpInfo(body?: ListIds, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<MoveBillsDestination>> {\n        const path = this.basePath + '/api/v3/bill/possibleDestinationAccounts';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<MoveBillsDestination>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Moves the set of bills to the specified batch   The bills being moved could be in an open, pending or closed batch   The specified batch should be an open or pending batch   All the bills being moved should be in the same batch Moving from a pending to an open will cause the bills to get un-voided Moving from an open/closed to a pending will cause the bills to get voided If bills were in a closed batch, and downstream processes had already run, those processes will not get reversed\n     * \n     * @param batchId Batch to move to\n     * @param body List of bills to be moved to the new batch\n     */\n    public moveBatchWithHttpInfo(batchId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v202507/bill/batch/${batchId}'\n                    .replace('${' + 'batchId' + '}', String(batchId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'batchId' is not null or undefined\n        if (batchId === null || batchId === undefined) {\n            throw new Error('Required parameter batchId was null or undefined when calling moveBatch.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Moves the list of given bills to the specified destination account and meters. Each source Meter will be matched with  a corresponding destination Meter based on commodity.\n     * \n     * @param body DTO containing a list of Bill Ids, the destination Account Id, the destination AcountMeter Ids, a flag  indicating whether the Account GL information should be updated, a flag indicating whether the Meter GL information should be updated, and a flag indicating whether linked emissions record scope cateogory and GHG factors should be updated. WARNING: If emissions record scope categories and GHG factors are updated, any notes and/or attachments on those emissions records will be lost.\n     */\n    public moveBillsToAccountWithHttpInfo(body?: BillActionMove, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/bill/moveBills';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Fires a custom bill action. Custom bill actions are setup as webhooks\n     * \n     * @param body \n     */\n    public processBillCustomActionWithHttpInfo(body?: BillActionCustom, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<WebhookLogDetailsResponse>> {\n        const path = this.basePath + '/api/v3/bill/customAction';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<WebhookLogDetailsResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Creates reversal bills for the given bill ids considering multiple open batch options.\n     * \n     * @param body \n     */\n    public reverseBillsWithMultipleOpenBatchOptionsWithHttpInfo(body?: BillReversalRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v202510/bill/reverse';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Excludes or undoes exclusion of bills from accruals\n     * \n     * @param body \n     */\n    public setBillAccrualExclusionWithHttpInfo(body?: BillAccrualExclusionRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/bill/accrualExclusion';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Marks one or more bills as unexported.\n     * \n     * @param body An array of bill ids to be marked as unexported and export mode\n     */\n    public unexportBillsWithHttpInfo(body?: BillUnexport, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/bill/unexport';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Marks one or more bills as unexported. The bills to be unexported are selected based on the guid passed in.  The guid is generated when bills are exported via the bill export end point, and the guid is returned in the header of the response in a field named Ec-Guid.\n     * \n     * @param billExportGuid The identifier for the bills to be unexported\n     */\n    public unexportBillsByGuidWithHttpInfo(billExportGuid: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/bill/unexport/${billExportGuid}'\n                    .replace('${' + 'billExportGuid' + '}', String(billExportGuid));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'billExportGuid' is not null or undefined\n        if (billExportGuid === null || billExportGuid === undefined) {\n            throw new Error('Required parameter billExportGuid was null or undefined when calling unexportBillsByGuid.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Upload a file representing a bill image. The bill image file extension must match the settings in system data &#39;webbillimageext&#39;.\n     * \n     * @param billId The Bill ID associated with the file being uploaded.\n     * @param fileName The name of the file containing the bill image\n     * @param body Binary data containing the bill image\n     */\n    public uploadBillImageWithHttpInfo(billId: number, fileName?: string, body?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<string>> {\n        const path = this.basePath + '/api/v202506/bill/${billId}/billImage'\n                    .replace('${' + 'billId' + '}', String(billId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'billId' is not null or undefined\n        if (billId === null || billId === undefined) {\n            throw new Error('Required parameter billId was null or undefined when calling uploadBillImage.');\n        }\n        if (fileName !== undefined) {\n            queryParameters = queryParameters.set('fileName', <any>fileName);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json', \n            'text/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/octet-stream'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<string>(RequestMethod.Post, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { AccountBillAccountChargeSplitSettingsResponse } from '../model/accountBillAccountChargeSplitSettingsResponse';\nimport { BillAccountChargeSplitMethodRequest } from '../model/billAccountChargeSplitMethodRequest';\nimport { BillAccountChargeSplitMethodResponse } from '../model/billAccountChargeSplitMethodResponse';\nimport { BillAccountChargeSplitSettingsResponse } from '../model/billAccountChargeSplitSettingsResponse';\nimport { VendorBillAccountChargeSplitSettingsResponse } from '../model/vendorBillAccountChargeSplitSettingsResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class BillAccountChargeSplitService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Deletes a specific account&#39;s setting to split account charges on bill import\n     * \n     * @param accountId Account identifier\n     */\n    public deleteAccountBillAccountChargeSplitSettings(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteAccountBillAccountChargeSplitSettingsWithHttpInfo(accountId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes a specific vendor&#39;s setting to split account charges on bill import\n     * \n     * @param vendorId Vendor identifier\n     */\n    public deleteVendorBillAccountChargeSplitSettings(vendorId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteVendorBillAccountChargeSplitSettingsWithHttpInfo(vendorId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits a specific account&#39;s setting to split account charges on bill import If a rule does not currently exist for this account it is created otherwise it is updated\n     * \n     * @param accountId Account identifier\n     * @param body \n     */\n    public editAccountBillAccountChargeSplitSettings(accountId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<AccountBillAccountChargeSplitSettingsResponse> {\n        return this.editAccountBillAccountChargeSplitSettingsWithHttpInfo(accountId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<AccountBillAccountChargeSplitSettingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit the method used to split account charges on bill import\n     * \n     * @param body Method used to split account charges on bill import\n     */\n    public editBillAccountChargeSplitMethod(body?: BillAccountChargeSplitMethodRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BillAccountChargeSplitMethodResponse> {\n        return this.editBillAccountChargeSplitMethodWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BillAccountChargeSplitMethodResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits a specific vendor&#39;s setting to split account charges on bill import If a rule does not currently exist for this vendor it is created otherwise it is updated\n     * \n     * @param vendorId Vendor identifier\n     * @param body \n     */\n    public editVendorBillAccountChargeSplitSettings(vendorId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<VendorBillAccountChargeSplitSettingsResponse> {\n        return this.editVendorBillAccountChargeSplitSettingsWithHttpInfo(vendorId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<VendorBillAccountChargeSplitSettingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves a specific account&#39;s settings to split account charges on bill import\n     * \n     * @param accountId Account identifier\n     */\n    public getAccountBillAccountChargeSplitSettings(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<AccountBillAccountChargeSplitSettingsResponse> {\n        return this.getAccountBillAccountChargeSplitSettingsWithHttpInfo(accountId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<AccountBillAccountChargeSplitSettingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves the method used to split account charges on bill import\n     * \n     */\n    public getBillAccountChargeSplitMethod(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BillAccountChargeSplitMethodResponse> {\n        return this.getBillAccountChargeSplitMethodWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BillAccountChargeSplitMethodResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all settings used to split account charges on bill import Note: When filtering by vendor, only settings that apply to all vendor accounts (account null) will be returned\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getBillAccountChargeSplitSettings(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BillAccountChargeSplitSettingsResponse> {\n        return this.getBillAccountChargeSplitSettingsWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BillAccountChargeSplitSettingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves a specific vendor&#39;s settings to split account charges on bill import\n     * \n     * @param vendorId Vendor identifier\n     */\n    public getVendorBillAccountChargeSplitSettings(vendorId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<VendorBillAccountChargeSplitSettingsResponse> {\n        return this.getVendorBillAccountChargeSplitSettingsWithHttpInfo(vendorId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<VendorBillAccountChargeSplitSettingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Deletes a specific account&#39;s setting to split account charges on bill import\n     * \n     * @param accountId Account identifier\n     */\n    public deleteAccountBillAccountChargeSplitSettingsWithHttpInfo(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202407/billAccountChargeSplit/account/${accountId}'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling deleteAccountBillAccountChargeSplitSettings.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Deletes a specific vendor&#39;s setting to split account charges on bill import\n     * \n     * @param vendorId Vendor identifier\n     */\n    public deleteVendorBillAccountChargeSplitSettingsWithHttpInfo(vendorId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202407/billAccountChargeSplit/vendor/${vendorId}'\n                    .replace('${' + 'vendorId' + '}', String(vendorId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'vendorId' is not null or undefined\n        if (vendorId === null || vendorId === undefined) {\n            throw new Error('Required parameter vendorId was null or undefined when calling deleteVendorBillAccountChargeSplitSettings.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Edits a specific account&#39;s setting to split account charges on bill import If a rule does not currently exist for this account it is created otherwise it is updated\n     * \n     * @param accountId Account identifier\n     * @param body \n     */\n    public editAccountBillAccountChargeSplitSettingsWithHttpInfo(accountId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<AccountBillAccountChargeSplitSettingsResponse>> {\n        const path = this.basePath + '/api/v202407/billAccountChargeSplit/account/${accountId}'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling editAccountBillAccountChargeSplitSettings.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<AccountBillAccountChargeSplitSettingsResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edit the method used to split account charges on bill import\n     * \n     * @param body Method used to split account charges on bill import\n     */\n    public editBillAccountChargeSplitMethodWithHttpInfo(body?: BillAccountChargeSplitMethodRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BillAccountChargeSplitMethodResponse>> {\n        const path = this.basePath + '/api/v202407/billAccountChargeSplit/method';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BillAccountChargeSplitMethodResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edits a specific vendor&#39;s setting to split account charges on bill import If a rule does not currently exist for this vendor it is created otherwise it is updated\n     * \n     * @param vendorId Vendor identifier\n     * @param body \n     */\n    public editVendorBillAccountChargeSplitSettingsWithHttpInfo(vendorId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<VendorBillAccountChargeSplitSettingsResponse>> {\n        const path = this.basePath + '/api/v202407/billAccountChargeSplit/vendor/${vendorId}'\n                    .replace('${' + 'vendorId' + '}', String(vendorId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'vendorId' is not null or undefined\n        if (vendorId === null || vendorId === undefined) {\n            throw new Error('Required parameter vendorId was null or undefined when calling editVendorBillAccountChargeSplitSettings.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<VendorBillAccountChargeSplitSettingsResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Retrieves a specific account&#39;s settings to split account charges on bill import\n     * \n     * @param accountId Account identifier\n     */\n    public getAccountBillAccountChargeSplitSettingsWithHttpInfo(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<AccountBillAccountChargeSplitSettingsResponse>> {\n        const path = this.basePath + '/api/v202407/billAccountChargeSplit/account/${accountId}'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling getAccountBillAccountChargeSplitSettings.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<AccountBillAccountChargeSplitSettingsResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves the method used to split account charges on bill import\n     * \n     */\n    public getBillAccountChargeSplitMethodWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BillAccountChargeSplitMethodResponse>> {\n        const path = this.basePath + '/api/v202407/billAccountChargeSplit/method';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BillAccountChargeSplitMethodResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all settings used to split account charges on bill import Note: When filtering by vendor, only settings that apply to all vendor accounts (account null) will be returned\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getBillAccountChargeSplitSettingsWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BillAccountChargeSplitSettingsResponse>> {\n        const path = this.basePath + '/api/v202407/billAccountChargeSplit';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BillAccountChargeSplitSettingsResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves a specific vendor&#39;s settings to split account charges on bill import\n     * \n     * @param vendorId Vendor identifier\n     */\n    public getVendorBillAccountChargeSplitSettingsWithHttpInfo(vendorId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<VendorBillAccountChargeSplitSettingsResponse>> {\n        const path = this.basePath + '/api/v202407/billAccountChargeSplit/vendor/${vendorId}'\n                    .replace('${' + 'vendorId' + '}', String(vendorId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'vendorId' is not null or undefined\n        if (vendorId === null || vendorId === undefined) {\n            throw new Error('Required parameter vendorId was null or undefined when calling getVendorBillAccountChargeSplitSettings.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<VendorBillAccountChargeSplitSettingsResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { BillSplitDetailsRequest } from '../model/billSplitDetailsRequest';\nimport { BillSplitDetailsResponse } from '../model/billSplitDetailsResponse';\nimport { BillSplitParentDetailsResponse } from '../model/billSplitParentDetailsResponse';\nimport { ChargebackTaskVersionResponse } from '../model/chargebackTaskVersionResponse';\nimport { DistributionVersionManage } from '../model/distributionVersionManage';\nimport { DistributionVersionResponse } from '../model/distributionVersionResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class BillSplitService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Get bill split parent information for an account\n     * \n     * @param accountId ID of the account\n     */\n    public getAccountBillSplitParentDetails(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BillSplitParentDetailsResponse>> {\n        return this.getAccountBillSplitParentDetailsWithHttpInfo(accountId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BillSplitParentDetailsResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get all chargeback tasks with details for a specific version on an account and meter\n     * \n     * @param accountId ID of the account\n     * @param meterId ID of the meter\n     * @param versionId ID of the distribution version\n     */\n    public getBillSplitChargebackTaskByVersion(accountId: number, meterId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<ChargebackTaskVersionResponse>> {\n        return this.getBillSplitChargebackTaskByVersionWithHttpInfo(accountId, meterId, versionId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<ChargebackTaskVersionResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get details for a bill split distribution\n     * \n     * @param accountId ID of the account\n     * @param meterId ID of the meter\n     * @param versionId ID of the distribution version\n     */\n    public getBillSplitDetails(accountId: number, meterId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BillSplitDetailsResponse> {\n        return this.getBillSplitDetailsWithHttpInfo(accountId, meterId, versionId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BillSplitDetailsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a list of bill split versions on this account and meter relationship\n     * \n     * @param accountId ID of the account to get all assigned bill split versions\n     * @param meterId ID of the meter to get all assigned bill split versions\n     */\n    public getBillSplitVersionHistory(accountId: number, meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<DistributionVersionResponse>> {\n        return this.getBillSplitVersionHistoryWithHttpInfo(accountId, meterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<DistributionVersionResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a list of bill split versions which match the provided filter conditions\n     * \n     * @param filter API filter string containing conditions\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getBillSplitVersions(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<DistributionVersionResponse>> {\n        return this.getBillSplitVersionsWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<DistributionVersionResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a list of bill split versions on an account\n     * \n     * @param accountId ID of the account to get all assigned bill split versions\n     */\n    public getBillSplits(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<DistributionVersionResponse>> {\n        return this.getBillSplitsWithHttpInfo(accountId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<DistributionVersionResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get bill split parent information for a meter\n     * \n     * @param meterId ID of the meter\n     */\n    public getMeterBillSplitParentDetails(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BillSplitParentDetailsResponse>> {\n        return this.getMeterBillSplitParentDetailsWithHttpInfo(meterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BillSplitParentDetailsResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Manage details for a bill split distribution\n     * \n     * @param accountId ID of the master account\n     * @param meterId ID of the master meter\n     * @param versionId ID of the version to update bill split details\n     * @param body Definition of details for bill split\n     */\n    public manageBillSplitDetails(accountId: number, meterId: number, versionId: number, body?: BillSplitDetailsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BillSplitDetailsResponse> {\n        return this.manageBillSplitDetailsWithHttpInfo(accountId, meterId, versionId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BillSplitDetailsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Manage a bill split&#39;s version history All bill split versions to save on this account and meter relationship should be passed If versionId is passed, this version will be updated to the request body values If copyVersionId is passed, a new version will be created and all instructions and inputs on the copyVersionId will be copied If versionId and copyVersionId are null a new version will be created Versions cannot overlap If a bill split version currently exists in the database, but is not passed in it will be deleted Only versions that are not currently associated with any bills can be deleted If any part of the create, update, or delete process fails, the entire process is rolled back\n     * \n     * @param accountId ID of the account whose bill split versions will be updated\n     * @param meterId ID of the meter whose bill split versions will be updated\n     * @param body List of bill split distribution versions to add or edit\n     */\n    public manageBillSplitVersionHistory(accountId: number, meterId: number, body?: Array<DistributionVersionManage>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<DistributionVersionResponse>> {\n        return this.manageBillSplitVersionHistoryWithHttpInfo(accountId, meterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<DistributionVersionResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Get bill split parent information for an account\n     * \n     * @param accountId ID of the account\n     */\n    public getAccountBillSplitParentDetailsWithHttpInfo(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BillSplitParentDetailsResponse>>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/billSplit/parent'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling getAccountBillSplitParentDetails.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BillSplitParentDetailsResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get all chargeback tasks with details for a specific version on an account and meter\n     * \n     * @param accountId ID of the account\n     * @param meterId ID of the meter\n     * @param versionId ID of the distribution version\n     */\n    public getBillSplitChargebackTaskByVersionWithHttpInfo(accountId: number, meterId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<ChargebackTaskVersionResponse>>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/meter/${meterId}/billSplit/${versionId}/chargebackTask'\n                    .replace('${' + 'accountId' + '}', String(accountId))\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling getBillSplitChargebackTaskByVersion.');\n        }\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getBillSplitChargebackTaskByVersion.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling getBillSplitChargebackTaskByVersion.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<ChargebackTaskVersionResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get details for a bill split distribution\n     * \n     * @param accountId ID of the account\n     * @param meterId ID of the meter\n     * @param versionId ID of the distribution version\n     */\n    public getBillSplitDetailsWithHttpInfo(accountId: number, meterId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BillSplitDetailsResponse>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/meter/${meterId}/billSplit/${versionId}'\n                    .replace('${' + 'accountId' + '}', String(accountId))\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling getBillSplitDetails.');\n        }\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getBillSplitDetails.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling getBillSplitDetails.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BillSplitDetailsResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a list of bill split versions on this account and meter relationship\n     * \n     * @param accountId ID of the account to get all assigned bill split versions\n     * @param meterId ID of the meter to get all assigned bill split versions\n     */\n    public getBillSplitVersionHistoryWithHttpInfo(accountId: number, meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<DistributionVersionResponse>>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/meter/${meterId}/billSplit'\n                    .replace('${' + 'accountId' + '}', String(accountId))\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling getBillSplitVersionHistory.');\n        }\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getBillSplitVersionHistory.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<DistributionVersionResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a list of bill split versions which match the provided filter conditions\n     * \n     * @param filter API filter string containing conditions\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getBillSplitVersionsWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<DistributionVersionResponse>>> {\n        const path = this.basePath + '/api/v3/billSplit';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<DistributionVersionResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a list of bill split versions on an account\n     * \n     * @param accountId ID of the account to get all assigned bill split versions\n     */\n    public getBillSplitsWithHttpInfo(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<DistributionVersionResponse>>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/billSplit'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling getBillSplits.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<DistributionVersionResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get bill split parent information for a meter\n     * \n     * @param meterId ID of the meter\n     */\n    public getMeterBillSplitParentDetailsWithHttpInfo(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BillSplitParentDetailsResponse>>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/billSplit/parent'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getMeterBillSplitParentDetails.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BillSplitParentDetailsResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Manage details for a bill split distribution\n     * \n     * @param accountId ID of the master account\n     * @param meterId ID of the master meter\n     * @param versionId ID of the version to update bill split details\n     * @param body Definition of details for bill split\n     */\n    public manageBillSplitDetailsWithHttpInfo(accountId: number, meterId: number, versionId: number, body?: BillSplitDetailsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BillSplitDetailsResponse>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/meter/${meterId}/billSplit/${versionId}'\n                    .replace('${' + 'accountId' + '}', String(accountId))\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling manageBillSplitDetails.');\n        }\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling manageBillSplitDetails.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling manageBillSplitDetails.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BillSplitDetailsResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Manage a bill split&#39;s version history All bill split versions to save on this account and meter relationship should be passed If versionId is passed, this version will be updated to the request body values If copyVersionId is passed, a new version will be created and all instructions and inputs on the copyVersionId will be copied If versionId and copyVersionId are null a new version will be created Versions cannot overlap If a bill split version currently exists in the database, but is not passed in it will be deleted Only versions that are not currently associated with any bills can be deleted If any part of the create, update, or delete process fails, the entire process is rolled back\n     * \n     * @param accountId ID of the account whose bill split versions will be updated\n     * @param meterId ID of the meter whose bill split versions will be updated\n     * @param body List of bill split distribution versions to add or edit\n     */\n    public manageBillSplitVersionHistoryWithHttpInfo(accountId: number, meterId: number, body?: Array<DistributionVersionManage>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<DistributionVersionResponse>>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/meter/${meterId}/billSplit'\n                    .replace('${' + 'accountId' + '}', String(accountId))\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling manageBillSplitVersionHistory.');\n        }\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling manageBillSplitVersionHistory.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<DistributionVersionResponse>>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { BillViewResponse } from '../model/billViewResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class BillViewService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Retrieves properties for bill view\n     * \n     * @param billId The bill identifier\n     */\n    public getBillView(billId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BillViewResponse> {\n        return this.getBillViewWithHttpInfo(billId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BillViewResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Retrieves properties for bill view\n     * \n     * @param billId The bill identifier\n     */\n    public getBillViewWithHttpInfo(billId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BillViewResponse>> {\n        const path = this.basePath + '/api/v3/billView/${billId}'\n                    .replace('${' + 'billId' + '}', String(billId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'billId' is not null or undefined\n        if (billId === null || billId === undefined) {\n            throw new Error('Required parameter billId was null or undefined when calling getBillView.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BillViewResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { BudgetCreate } from '../model/budgetCreate';\nimport { BudgetDataType } from '../model/budgetDataType';\nimport { BudgetEdit } from '../model/budgetEdit';\nimport { BudgetPeriodType } from '../model/budgetPeriodType';\nimport { BudgetResponse } from '../model/budgetResponse';\nimport { BudgetUsageMethod } from '../model/budgetUsageMethod';\nimport { BudgetVersionCreate } from '../model/budgetVersionCreate';\nimport { BudgetVersionEdit } from '../model/budgetVersionEdit';\nimport { BudgetVersionResponse } from '../model/budgetVersionResponse';\nimport { BudgetVersionSummaryResponse } from '../model/budgetVersionSummaryResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class BudgetService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Creates a budget\n     * \n     * @param body Data representing the budget being created\n     */\n    public createBudget(body?: BudgetCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BudgetResponse> {\n        return this.createBudgetWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BudgetResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Creates a budget version\n     * \n     * @param budgetId The identifier for the budget to create the version on\n     * @param body Data representing the budgetVersion being created\n     */\n    public createBudgetVersion(budgetId: number, body?: BudgetVersionCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BudgetVersionResponse> {\n        return this.createBudgetVersionWithHttpInfo(budgetId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BudgetVersionResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes a budget\n     * \n     * @param budgetId The identifier for the budget being deleted\n     */\n    public deleteBudget(budgetId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteBudgetWithHttpInfo(budgetId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes a budget version\n     * \n     * @param budgetId The identifier for the budget\n     * @param versionId The identifier for the version being deleted\n     */\n    public deleteBudgetVersion(budgetId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteBudgetVersionWithHttpInfo(budgetId, versionId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits a budget\n     * \n     * @param budgetId The identifier for the budget being edited\n     * @param body Data representing the budget being edited\n     */\n    public editBudget(budgetId: number, body?: BudgetEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BudgetResponse> {\n        return this.editBudgetWithHttpInfo(budgetId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BudgetResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits a budget version\n     * \n     * @param budgetId The identifier for the budget\n     * @param versionId The identifier for the version being retrieved\n     * @param body Data representing the budgetVersion being edited\n     */\n    public editBudgetVersion(budgetId: number, versionId: number, body?: BudgetVersionEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BudgetVersionResponse> {\n        return this.editBudgetVersionWithHttpInfo(budgetId, versionId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BudgetVersionResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves the budget by ID\n     * \n     * @param budgetId The identifier for the budget being retrieved\n     */\n    public getBudget(budgetId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BudgetResponse> {\n        return this.getBudgetWithHttpInfo(budgetId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BudgetResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves a list of available budget data types\n     * \n     */\n    public getBudgetDataTypes(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BudgetDataType>> {\n        return this.getBudgetDataTypesWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BudgetDataType>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves a list of budget period types\n     * \n     */\n    public getBudgetPeriodTypes(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BudgetPeriodType>> {\n        return this.getBudgetPeriodTypesWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BudgetPeriodType>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves a list of available budget usage methods\n     * \n     */\n    public getBudgetUsageMethods(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BudgetUsageMethod>> {\n        return this.getBudgetUsageMethodsWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BudgetUsageMethod>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves a specific version for a budget\n     * \n     * @param budgetId The identifier for the budget\n     * @param versionId The identifier for the version being retrieved\n     */\n    public getBudgetVersion(budgetId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BudgetVersionResponse> {\n        return this.getBudgetVersionWithHttpInfo(budgetId, versionId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BudgetVersionResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves the summary for a specific version on a budget\n     * \n     * @param budgetId The identifier for the budget\n     * @param versionId The identifier for the version being retrieved\n     * @param commodityId The optional commodity filter\n     */\n    public getBudgetVersionSummary(budgetId: number, versionId: number, commodityId?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BudgetVersionSummaryResponse> {\n        return this.getBudgetVersionSummaryWithHttpInfo(budgetId, versionId, commodityId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BudgetVersionSummaryResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all the versions for a specified budget\n     * \n     * @param budgetId The identifier for the budget to retrieve all versions\n     */\n    public getBudgetVersions(budgetId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BudgetVersionResponse>> {\n        return this.getBudgetVersionsWithHttpInfo(budgetId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BudgetVersionResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all the budgets\n     * \n     */\n    public getBudgets(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BudgetResponse>> {\n        return this.getBudgetsWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BudgetResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Sets a budget version as active, and all other versions as inactive.\n     * \n     * @param budgetId The identifier for the budget\n     * @param versionId The identifier for the version to set as active\n     */\n    public setBudgetVersionActive(budgetId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BudgetVersionResponse> {\n        return this.setBudgetVersionActiveWithHttpInfo(budgetId, versionId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BudgetVersionResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Creates a budget\n     * \n     * @param body Data representing the budget being created\n     */\n    public createBudgetWithHttpInfo(body?: BudgetCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BudgetResponse>> {\n        const path = this.basePath + '/api/v202310/budget';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BudgetResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Creates a budget version\n     * \n     * @param budgetId The identifier for the budget to create the version on\n     * @param body Data representing the budgetVersion being created\n     */\n    public createBudgetVersionWithHttpInfo(budgetId: number, body?: BudgetVersionCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BudgetVersionResponse>> {\n        const path = this.basePath + '/api/v202310/budget/${budgetId}/version'\n                    .replace('${' + 'budgetId' + '}', String(budgetId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'budgetId' is not null or undefined\n        if (budgetId === null || budgetId === undefined) {\n            throw new Error('Required parameter budgetId was null or undefined when calling createBudgetVersion.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BudgetVersionResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Deletes a budget\n     * \n     * @param budgetId The identifier for the budget being deleted\n     */\n    public deleteBudgetWithHttpInfo(budgetId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202310/budget/${budgetId}'\n                    .replace('${' + 'budgetId' + '}', String(budgetId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'budgetId' is not null or undefined\n        if (budgetId === null || budgetId === undefined) {\n            throw new Error('Required parameter budgetId was null or undefined when calling deleteBudget.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Deletes a budget version\n     * \n     * @param budgetId The identifier for the budget\n     * @param versionId The identifier for the version being deleted\n     */\n    public deleteBudgetVersionWithHttpInfo(budgetId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202310/budget/${budgetId}/version/${versionId}'\n                    .replace('${' + 'budgetId' + '}', String(budgetId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'budgetId' is not null or undefined\n        if (budgetId === null || budgetId === undefined) {\n            throw new Error('Required parameter budgetId was null or undefined when calling deleteBudgetVersion.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling deleteBudgetVersion.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Edits a budget\n     * \n     * @param budgetId The identifier for the budget being edited\n     * @param body Data representing the budget being edited\n     */\n    public editBudgetWithHttpInfo(budgetId: number, body?: BudgetEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BudgetResponse>> {\n        const path = this.basePath + '/api/v202310/budget/${budgetId}'\n                    .replace('${' + 'budgetId' + '}', String(budgetId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'budgetId' is not null or undefined\n        if (budgetId === null || budgetId === undefined) {\n            throw new Error('Required parameter budgetId was null or undefined when calling editBudget.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BudgetResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edits a budget version\n     * \n     * @param budgetId The identifier for the budget\n     * @param versionId The identifier for the version being retrieved\n     * @param body Data representing the budgetVersion being edited\n     */\n    public editBudgetVersionWithHttpInfo(budgetId: number, versionId: number, body?: BudgetVersionEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BudgetVersionResponse>> {\n        const path = this.basePath + '/api/v202310/budget/${budgetId}/version/${versionId}'\n                    .replace('${' + 'budgetId' + '}', String(budgetId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'budgetId' is not null or undefined\n        if (budgetId === null || budgetId === undefined) {\n            throw new Error('Required parameter budgetId was null or undefined when calling editBudgetVersion.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling editBudgetVersion.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BudgetVersionResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Retrieves the budget by ID\n     * \n     * @param budgetId The identifier for the budget being retrieved\n     */\n    public getBudgetWithHttpInfo(budgetId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BudgetResponse>> {\n        const path = this.basePath + '/api/v202310/budget/${budgetId}'\n                    .replace('${' + 'budgetId' + '}', String(budgetId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'budgetId' is not null or undefined\n        if (budgetId === null || budgetId === undefined) {\n            throw new Error('Required parameter budgetId was null or undefined when calling getBudget.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BudgetResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves a list of available budget data types\n     * \n     */\n    public getBudgetDataTypesWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BudgetDataType>>> {\n        const path = this.basePath + '/api/v202310/budget/dataType';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BudgetDataType>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves a list of budget period types\n     * \n     */\n    public getBudgetPeriodTypesWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BudgetPeriodType>>> {\n        const path = this.basePath + '/api/v202310/budget/periodType';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BudgetPeriodType>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves a list of available budget usage methods\n     * \n     */\n    public getBudgetUsageMethodsWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BudgetUsageMethod>>> {\n        const path = this.basePath + '/api/v202310/budget/usageMethod';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BudgetUsageMethod>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves a specific version for a budget\n     * \n     * @param budgetId The identifier for the budget\n     * @param versionId The identifier for the version being retrieved\n     */\n    public getBudgetVersionWithHttpInfo(budgetId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BudgetVersionResponse>> {\n        const path = this.basePath + '/api/v202310/budget/${budgetId}/version/${versionId}'\n                    .replace('${' + 'budgetId' + '}', String(budgetId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'budgetId' is not null or undefined\n        if (budgetId === null || budgetId === undefined) {\n            throw new Error('Required parameter budgetId was null or undefined when calling getBudgetVersion.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling getBudgetVersion.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BudgetVersionResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves the summary for a specific version on a budget\n     * \n     * @param budgetId The identifier for the budget\n     * @param versionId The identifier for the version being retrieved\n     * @param commodityId The optional commodity filter\n     */\n    public getBudgetVersionSummaryWithHttpInfo(budgetId: number, versionId: number, commodityId?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BudgetVersionSummaryResponse>> {\n        const path = this.basePath + '/api/v202310/budget/${budgetId}/version/${versionId}/summary'\n                    .replace('${' + 'budgetId' + '}', String(budgetId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'budgetId' is not null or undefined\n        if (budgetId === null || budgetId === undefined) {\n            throw new Error('Required parameter budgetId was null or undefined when calling getBudgetVersionSummary.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling getBudgetVersionSummary.');\n        }\n        if (commodityId !== undefined) {\n            queryParameters = queryParameters.set('commodityId', <any>commodityId);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BudgetVersionSummaryResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all the versions for a specified budget\n     * \n     * @param budgetId The identifier for the budget to retrieve all versions\n     */\n    public getBudgetVersionsWithHttpInfo(budgetId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BudgetVersionResponse>>> {\n        const path = this.basePath + '/api/v202310/budget/${budgetId}/version'\n                    .replace('${' + 'budgetId' + '}', String(budgetId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'budgetId' is not null or undefined\n        if (budgetId === null || budgetId === undefined) {\n            throw new Error('Required parameter budgetId was null or undefined when calling getBudgetVersions.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BudgetVersionResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all the budgets\n     * \n     */\n    public getBudgetsWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BudgetResponse>>> {\n        const path = this.basePath + '/api/v202310/budget';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BudgetResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Sets a budget version as active, and all other versions as inactive.\n     * \n     * @param budgetId The identifier for the budget\n     * @param versionId The identifier for the version to set as active\n     */\n    public setBudgetVersionActiveWithHttpInfo(budgetId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BudgetVersionResponse>> {\n        const path = this.basePath + '/api/v202310/budget/${budgetId}/version/${versionId}/active'\n                    .replace('${' + 'budgetId' + '}', String(budgetId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'budgetId' is not null or undefined\n        if (budgetId === null || budgetId === undefined) {\n            throw new Error('Required parameter budgetId was null or undefined when calling setBudgetVersionActive.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling setBudgetVersionActive.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BudgetVersionResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { CalculatedBillCostRequest } from '../model/calculatedBillCostRequest';\nimport { CalculatedBillCostResponse } from '../model/calculatedBillCostResponse';\nimport { CalculatedBillDemandRequest } from '../model/calculatedBillDemandRequest';\nimport { CalculatedBillDemandResponse } from '../model/calculatedBillDemandResponse';\nimport { CalculatedBillDetailsResponse } from '../model/calculatedBillDetailsResponse';\nimport { CalculatedBillUseRequest } from '../model/calculatedBillUseRequest';\nimport { CalculatedBillUseResponse } from '../model/calculatedBillUseResponse';\nimport { ChargebackTaskVersionResponse } from '../model/chargebackTaskVersionResponse';\nimport { DistributionVersionManage } from '../model/distributionVersionManage';\nimport { DistributionVersionResponse } from '../model/distributionVersionResponse';\nimport { GenericBodylineRequest } from '../model/genericBodylineRequest';\nimport { GenericBodylineResponse } from '../model/genericBodylineResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class CalculatedBillService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Get calculated bill account line items\n     * \n     * @param accountId ID of the account to receive calculated bill details\n     * @param meterId ID of the meter to receive calculated bill details\n     * @param versionId ID of the calculated bill distribution version\n     */\n    public getAccountLineItems(accountId: number, meterId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<GenericBodylineResponse>> {\n        return this.getAccountLineItemsWithHttpInfo(accountId, meterId, versionId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<GenericBodylineResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get calculated cost details\n     * \n     * @param accountId ID of the account to receive calculated bill details\n     * @param meterId ID of the meter to receive calculated bill details\n     * @param versionId ID of the calculated bill distribution version\n     */\n    public getCalculateBillCost(accountId: number, meterId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CalculatedBillCostResponse> {\n        return this.getCalculateBillCostWithHttpInfo(accountId, meterId, versionId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CalculatedBillCostResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get calculated demand details\n     * \n     * @param accountId ID of the account to receive calculated bill details\n     * @param meterId ID of the meter to receive calculated bill details\n     * @param versionId ID of the calculated bill distribution version\n     */\n    public getCalculateBillDemand(accountId: number, meterId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CalculatedBillDemandResponse> {\n        return this.getCalculateBillDemandWithHttpInfo(accountId, meterId, versionId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CalculatedBillDemandResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * All details related to calculated bill setup including use, cost, meter line items, and account line items\n     * \n     * @param accountId ID of the account to receive calculated bill details\n     * @param meterId ID of the meter to receive calculated bill details\n     * @param versionId ID of the calculated bill distribution version\n     */\n    public getCalculateBillDetails(accountId: number, meterId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CalculatedBillDetailsResponse> {\n        return this.getCalculateBillDetailsWithHttpInfo(accountId, meterId, versionId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CalculatedBillDetailsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get calculated use details\n     * \n     * @param accountId ID of the account to receive calculated bill details\n     * @param meterId ID of the meter to receive calculated bill details\n     * @param versionId ID of the calculated bill distribution version\n     */\n    public getCalculateBillUse(accountId: number, meterId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CalculatedBillUseResponse> {\n        return this.getCalculateBillUseWithHttpInfo(accountId, meterId, versionId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CalculatedBillUseResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get all chargeback tasks with details for a specific version on an account and meter\n     * \n     * @param accountId ID of the account\n     * @param meterId ID of the meter\n     * @param versionId ID of the distribution version\n     */\n    public getCalculatedBillChargebackTaskByVersion(accountId: number, meterId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<ChargebackTaskVersionResponse>> {\n        return this.getCalculatedBillChargebackTaskByVersionWithHttpInfo(accountId, meterId, versionId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<ChargebackTaskVersionResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a list of calculated bill versions on this account and meter relationship\n     * \n     * @param accountId ID of the account to get all assigned calculated bill versions\n     * @param meterId ID of the meter to get all assigned calculated bill versions\n     */\n    public getCalculatedBillVersionHistory(accountId: number, meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<DistributionVersionResponse>> {\n        return this.getCalculatedBillVersionHistoryWithHttpInfo(accountId, meterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<DistributionVersionResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a list of calculated bill versions which match the provided filter conditions\n     * \n     * @param filter API filter string containing conditions\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getCalculatedBillVersions(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<DistributionVersionResponse>> {\n        return this.getCalculatedBillVersionsWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<DistributionVersionResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a list of calculated bill versions on a meter\n     * \n     * @param meterId ID of the meter to get all assigned calculated bill versions\n     */\n    public getCalculatedBills(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<DistributionVersionResponse>> {\n        return this.getCalculatedBillsWithHttpInfo(meterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<DistributionVersionResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get calculated bill meter line items\n     * \n     * @param accountId ID of the account to receive calculated bill details\n     * @param meterId ID of the meter to receive calculated bill details\n     * @param versionId ID of the calculated bill distribution version\n     */\n    public getMeterLineItems(accountId: number, meterId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<GenericBodylineResponse>> {\n        return this.getMeterLineItemsWithHttpInfo(accountId, meterId, versionId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<GenericBodylineResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Manage calculated bill account line items The order of items in the list defines the calculation order All line items to save should be passed If a line currently exists and is not passed in it will be deleted If any part of the create, update, or delete process fails, the entire process is rolled back\n     * \n     * @param accountId ID of the account to receive calculated bill details\n     * @param meterId ID of the meter to receive calculated bill details\n     * @param versionId ID of the calculated bill distribution version\n     * @param body Definition of the account line items.\n     */\n    public manageAccountLineItems(accountId: number, meterId: number, versionId: number, body?: Array<GenericBodylineRequest>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<GenericBodylineResponse>> {\n        return this.manageAccountLineItemsWithHttpInfo(accountId, meterId, versionId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<GenericBodylineResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Manage calculated bill&#39;s cost If cost does not exist on the distribution it will be added If one exists it will be saved as the option sent in Since cost is required for the calculated bill distribution to work.  One option is always required and cannot be deleted\n     * \n     * @param accountId ID of the account to receive calculated bill details\n     * @param meterId ID of the meter to receive calculated bill details\n     * @param versionId ID of the calculated bill distribution version\n     * @param body Definition of how the meter will calculate its cost\n     */\n    public manageCalculateBillCost(accountId: number, meterId: number, versionId: number, body?: CalculatedBillCostRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CalculatedBillCostResponse> {\n        return this.manageCalculateBillCostWithHttpInfo(accountId, meterId, versionId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CalculatedBillCostResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Manage calculated bill&#39;s demand If demand does not exist on the distribution it will be added If one exists it will be saved as the option sent in If the dto sends null for both (channel and fixed), then demand will get cleared\n     * \n     * @param accountId ID of the account to receive calculated bill details\n     * @param meterId ID of the meter to receive calculated bill details\n     * @param versionId ID of the calculated bill distribution version\n     * @param body Definition of how the meter will calculate its demand\n     */\n    public manageCalculateBillDemand(accountId: number, meterId: number, versionId: number, body?: CalculatedBillDemandRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CalculatedBillDemandResponse> {\n        return this.manageCalculateBillDemandWithHttpInfo(accountId, meterId, versionId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CalculatedBillDemandResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Manage calculated bill&#39;s use * If use does not exist on the distribution it will be added * If use already exists it will be saved as the option sent in and any existing inputs will be deleted * Since use is required for the calculated bill distribution to work, one option is always required and cannot be deleted\n     * \n     * @param accountId ID of the account to receive calculated bill details\n     * @param meterId ID of the meter to receive calculated bill details\n     * @param versionId ID of the calculated bill distribution version\n     * @param body Definition of how the meter will calculate its use\n     */\n    public manageCalculateBillUse(accountId: number, meterId: number, versionId: number, body?: CalculatedBillUseRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CalculatedBillUseResponse> {\n        return this.manageCalculateBillUseWithHttpInfo(accountId, meterId, versionId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CalculatedBillUseResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Manage a calculated bill&#39;s version history All calculated bill versions to save on this account and meter relationship should be passed If versionId is passed, this version will be updated to the request body values If copyVersionId is passed, a new version will be created and all instructions and inputs on the copyVersionId will be copied If versionId and copyVersionId are null a new version will be created Versions cannot overlap If a calculated bill version currently exists in the database, but is not passed in it will be deleted Only versions that are not currently associated with any bills can be deleted If any part of the create, update, or delete process fails, the entire process is rolled back\n     * \n     * @param accountId ID of the account to receive calculated bill details\n     * @param meterId ID of the meter to receive calculated bill details\n     * @param body List of calculated bill distribution versions to add or edit\n     */\n    public manageCalculatedBillVersionHistory(accountId: number, meterId: number, body?: Array<DistributionVersionManage>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<DistributionVersionResponse>> {\n        return this.manageCalculatedBillVersionHistoryWithHttpInfo(accountId, meterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<DistributionVersionResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Manage calculated bill meter line items The order of items in the list defines the calculation order All line items to save should be passed If a line currently exists and is not passed in it will be deleted If any part of the create, update, or delete process fails, the entire process is rolled back\n     * \n     * @param accountId ID of the account to receive calculated bill details\n     * @param meterId ID of the meter to receive calculated bill details\n     * @param versionId ID of the calculated bill distribution version\n     * @param body Definition of the meter line items\n     */\n    public manageMeterLineItems(accountId: number, meterId: number, versionId: number, body?: Array<GenericBodylineRequest>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<GenericBodylineResponse>> {\n        return this.manageMeterLineItemsWithHttpInfo(accountId, meterId, versionId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<GenericBodylineResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Forces all Account and Meter Chargeback flags in the system to be recalculated\n     * \n     */\n    public recalculateChargebackFlags(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.recalculateChargebackFlagsWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Get calculated bill account line items\n     * \n     * @param accountId ID of the account to receive calculated bill details\n     * @param meterId ID of the meter to receive calculated bill details\n     * @param versionId ID of the calculated bill distribution version\n     */\n    public getAccountLineItemsWithHttpInfo(accountId: number, meterId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<GenericBodylineResponse>>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/meter/${meterId}/calculatedBill/${versionId}/accountLineItem'\n                    .replace('${' + 'accountId' + '}', String(accountId))\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling getAccountLineItems.');\n        }\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getAccountLineItems.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling getAccountLineItems.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<GenericBodylineResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get calculated cost details\n     * \n     * @param accountId ID of the account to receive calculated bill details\n     * @param meterId ID of the meter to receive calculated bill details\n     * @param versionId ID of the calculated bill distribution version\n     */\n    public getCalculateBillCostWithHttpInfo(accountId: number, meterId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CalculatedBillCostResponse>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/meter/${meterId}/calculatedBill/${versionId}/cost'\n                    .replace('${' + 'accountId' + '}', String(accountId))\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling getCalculateBillCost.');\n        }\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getCalculateBillCost.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling getCalculateBillCost.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CalculatedBillCostResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get calculated demand details\n     * \n     * @param accountId ID of the account to receive calculated bill details\n     * @param meterId ID of the meter to receive calculated bill details\n     * @param versionId ID of the calculated bill distribution version\n     */\n    public getCalculateBillDemandWithHttpInfo(accountId: number, meterId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CalculatedBillDemandResponse>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/meter/${meterId}/calculatedBill/${versionId}/demand'\n                    .replace('${' + 'accountId' + '}', String(accountId))\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling getCalculateBillDemand.');\n        }\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getCalculateBillDemand.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling getCalculateBillDemand.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CalculatedBillDemandResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * All details related to calculated bill setup including use, cost, meter line items, and account line items\n     * \n     * @param accountId ID of the account to receive calculated bill details\n     * @param meterId ID of the meter to receive calculated bill details\n     * @param versionId ID of the calculated bill distribution version\n     */\n    public getCalculateBillDetailsWithHttpInfo(accountId: number, meterId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CalculatedBillDetailsResponse>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/meter/${meterId}/calculatedBill/${versionId}'\n                    .replace('${' + 'accountId' + '}', String(accountId))\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling getCalculateBillDetails.');\n        }\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getCalculateBillDetails.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling getCalculateBillDetails.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CalculatedBillDetailsResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get calculated use details\n     * \n     * @param accountId ID of the account to receive calculated bill details\n     * @param meterId ID of the meter to receive calculated bill details\n     * @param versionId ID of the calculated bill distribution version\n     */\n    public getCalculateBillUseWithHttpInfo(accountId: number, meterId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CalculatedBillUseResponse>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/meter/${meterId}/calculatedBill/${versionId}/use'\n                    .replace('${' + 'accountId' + '}', String(accountId))\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling getCalculateBillUse.');\n        }\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getCalculateBillUse.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling getCalculateBillUse.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CalculatedBillUseResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get all chargeback tasks with details for a specific version on an account and meter\n     * \n     * @param accountId ID of the account\n     * @param meterId ID of the meter\n     * @param versionId ID of the distribution version\n     */\n    public getCalculatedBillChargebackTaskByVersionWithHttpInfo(accountId: number, meterId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<ChargebackTaskVersionResponse>>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/meter/${meterId}/calculatedBill/${versionId}/chargebackTask'\n                    .replace('${' + 'accountId' + '}', String(accountId))\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling getCalculatedBillChargebackTaskByVersion.');\n        }\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getCalculatedBillChargebackTaskByVersion.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling getCalculatedBillChargebackTaskByVersion.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<ChargebackTaskVersionResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a list of calculated bill versions on this account and meter relationship\n     * \n     * @param accountId ID of the account to get all assigned calculated bill versions\n     * @param meterId ID of the meter to get all assigned calculated bill versions\n     */\n    public getCalculatedBillVersionHistoryWithHttpInfo(accountId: number, meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<DistributionVersionResponse>>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/meter/${meterId}/calculatedBill'\n                    .replace('${' + 'accountId' + '}', String(accountId))\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling getCalculatedBillVersionHistory.');\n        }\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getCalculatedBillVersionHistory.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<DistributionVersionResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a list of calculated bill versions which match the provided filter conditions\n     * \n     * @param filter API filter string containing conditions\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getCalculatedBillVersionsWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<DistributionVersionResponse>>> {\n        const path = this.basePath + '/api/v3/calculatedBill';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<DistributionVersionResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a list of calculated bill versions on a meter\n     * \n     * @param meterId ID of the meter to get all assigned calculated bill versions\n     */\n    public getCalculatedBillsWithHttpInfo(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<DistributionVersionResponse>>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/calculatedBill'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getCalculatedBills.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<DistributionVersionResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get calculated bill meter line items\n     * \n     * @param accountId ID of the account to receive calculated bill details\n     * @param meterId ID of the meter to receive calculated bill details\n     * @param versionId ID of the calculated bill distribution version\n     */\n    public getMeterLineItemsWithHttpInfo(accountId: number, meterId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<GenericBodylineResponse>>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/meter/${meterId}/calculatedBill/${versionId}/meterLineItem'\n                    .replace('${' + 'accountId' + '}', String(accountId))\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling getMeterLineItems.');\n        }\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getMeterLineItems.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling getMeterLineItems.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<GenericBodylineResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Manage calculated bill account line items The order of items in the list defines the calculation order All line items to save should be passed If a line currently exists and is not passed in it will be deleted If any part of the create, update, or delete process fails, the entire process is rolled back\n     * \n     * @param accountId ID of the account to receive calculated bill details\n     * @param meterId ID of the meter to receive calculated bill details\n     * @param versionId ID of the calculated bill distribution version\n     * @param body Definition of the account line items.\n     */\n    public manageAccountLineItemsWithHttpInfo(accountId: number, meterId: number, versionId: number, body?: Array<GenericBodylineRequest>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<GenericBodylineResponse>>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/meter/${meterId}/calculatedBill/${versionId}/accountLineItem'\n                    .replace('${' + 'accountId' + '}', String(accountId))\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling manageAccountLineItems.');\n        }\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling manageAccountLineItems.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling manageAccountLineItems.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<GenericBodylineResponse>>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Manage calculated bill&#39;s cost If cost does not exist on the distribution it will be added If one exists it will be saved as the option sent in Since cost is required for the calculated bill distribution to work.  One option is always required and cannot be deleted\n     * \n     * @param accountId ID of the account to receive calculated bill details\n     * @param meterId ID of the meter to receive calculated bill details\n     * @param versionId ID of the calculated bill distribution version\n     * @param body Definition of how the meter will calculate its cost\n     */\n    public manageCalculateBillCostWithHttpInfo(accountId: number, meterId: number, versionId: number, body?: CalculatedBillCostRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CalculatedBillCostResponse>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/meter/${meterId}/calculatedBill/${versionId}/cost'\n                    .replace('${' + 'accountId' + '}', String(accountId))\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling manageCalculateBillCost.');\n        }\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling manageCalculateBillCost.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling manageCalculateBillCost.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CalculatedBillCostResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Manage calculated bill&#39;s demand If demand does not exist on the distribution it will be added If one exists it will be saved as the option sent in If the dto sends null for both (channel and fixed), then demand will get cleared\n     * \n     * @param accountId ID of the account to receive calculated bill details\n     * @param meterId ID of the meter to receive calculated bill details\n     * @param versionId ID of the calculated bill distribution version\n     * @param body Definition of how the meter will calculate its demand\n     */\n    public manageCalculateBillDemandWithHttpInfo(accountId: number, meterId: number, versionId: number, body?: CalculatedBillDemandRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CalculatedBillDemandResponse>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/meter/${meterId}/calculatedBill/${versionId}/demand'\n                    .replace('${' + 'accountId' + '}', String(accountId))\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling manageCalculateBillDemand.');\n        }\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling manageCalculateBillDemand.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling manageCalculateBillDemand.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CalculatedBillDemandResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Manage calculated bill&#39;s use * If use does not exist on the distribution it will be added * If use already exists it will be saved as the option sent in and any existing inputs will be deleted * Since use is required for the calculated bill distribution to work, one option is always required and cannot be deleted\n     * \n     * @param accountId ID of the account to receive calculated bill details\n     * @param meterId ID of the meter to receive calculated bill details\n     * @param versionId ID of the calculated bill distribution version\n     * @param body Definition of how the meter will calculate its use\n     */\n    public manageCalculateBillUseWithHttpInfo(accountId: number, meterId: number, versionId: number, body?: CalculatedBillUseRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CalculatedBillUseResponse>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/meter/${meterId}/calculatedBill/${versionId}/use'\n                    .replace('${' + 'accountId' + '}', String(accountId))\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling manageCalculateBillUse.');\n        }\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling manageCalculateBillUse.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling manageCalculateBillUse.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CalculatedBillUseResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Manage a calculated bill&#39;s version history All calculated bill versions to save on this account and meter relationship should be passed If versionId is passed, this version will be updated to the request body values If copyVersionId is passed, a new version will be created and all instructions and inputs on the copyVersionId will be copied If versionId and copyVersionId are null a new version will be created Versions cannot overlap If a calculated bill version currently exists in the database, but is not passed in it will be deleted Only versions that are not currently associated with any bills can be deleted If any part of the create, update, or delete process fails, the entire process is rolled back\n     * \n     * @param accountId ID of the account to receive calculated bill details\n     * @param meterId ID of the meter to receive calculated bill details\n     * @param body List of calculated bill distribution versions to add or edit\n     */\n    public manageCalculatedBillVersionHistoryWithHttpInfo(accountId: number, meterId: number, body?: Array<DistributionVersionManage>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<DistributionVersionResponse>>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/meter/${meterId}/calculatedBill'\n                    .replace('${' + 'accountId' + '}', String(accountId))\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling manageCalculatedBillVersionHistory.');\n        }\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling manageCalculatedBillVersionHistory.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<DistributionVersionResponse>>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Manage calculated bill meter line items The order of items in the list defines the calculation order All line items to save should be passed If a line currently exists and is not passed in it will be deleted If any part of the create, update, or delete process fails, the entire process is rolled back\n     * \n     * @param accountId ID of the account to receive calculated bill details\n     * @param meterId ID of the meter to receive calculated bill details\n     * @param versionId ID of the calculated bill distribution version\n     * @param body Definition of the meter line items\n     */\n    public manageMeterLineItemsWithHttpInfo(accountId: number, meterId: number, versionId: number, body?: Array<GenericBodylineRequest>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<GenericBodylineResponse>>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/meter/${meterId}/calculatedBill/${versionId}/meterLineItem'\n                    .replace('${' + 'accountId' + '}', String(accountId))\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling manageMeterLineItems.');\n        }\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling manageMeterLineItems.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling manageMeterLineItems.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<GenericBodylineResponse>>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Forces all Account and Meter Chargeback flags in the system to be recalculated\n     * \n     */\n    public recalculateChargebackFlagsWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/recalculateChargebackFlags';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { ChannelCreate } from '../model/channelCreate';\nimport { ChannelEdit } from '../model/channelEdit';\nimport { ChannelResponse } from '../model/channelResponse';\nimport { ChannelVersionWithBeginDateRequest } from '../model/channelVersionWithBeginDateRequest';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class ChannelService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Create a new channel version\n     * \n     * @param meterId Id of the meter the channel is linked to\n     * @param channelId Id of the channel to add the version to\n     * @param body \n     */\n    public createChannelVersion(meterId: number, channelId: number, body?: ChannelVersionWithBeginDateRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ChannelResponse> {\n        return this.createChannelVersionWithHttpInfo(meterId, channelId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ChannelResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Creates and assigns a channel to a meter\n     * \n     * @param meterId Id of the meter to link the channel to\n     * @param body Data representing the channel being created\n     */\n    public createMeterChannel(meterId: number, body?: ChannelCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ChannelResponse> {\n        return this.createMeterChannelWithHttpInfo(meterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ChannelResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete a channel version There must always be one version on a channel If you try and delete the only version on a channel an exception will occur\n     * \n     * @param meterId Id of the meter the channel is linked to\n     * @param channelId Id of the channel the version is linked to\n     * @param versionId Id of the channel version to delete\n     */\n    public deleteChannelVersion(meterId: number, channelId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteChannelVersionWithHttpInfo(meterId, channelId, versionId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes a meter&#39;s channel All readings linked to this channel will also be deleted. A channel that is part of a distribution cannot be deleted.\n     * \n     * @param meterId Id of the meter the channel is linked to\n     * @param channelId Id of the channel to delete\n     */\n    public deleteMeterChannel(meterId: number, channelId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteMeterChannelWithHttpInfo(meterId, channelId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Download file for a channel version custom field\n     * \n     * @param meterId \n     * @param channelId \n     * @param versionId \n     * @param udfId \n     */\n    public downloadChannelVersionCustomFieldFile(meterId: number, channelId: number, versionId: number, udfId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.downloadChannelVersionCustomFieldFileWithHttpInfo(meterId, channelId, versionId, udfId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Update a channel version\n     * \n     * @param meterId Id of the meter the channel is linked to\n     * @param channelId Id of the channel the version is linked to\n     * @param versionId Id of the channel version to update\n     * @param body \n     */\n    public editChannelVersion(meterId: number, channelId: number, versionId: number, body?: ChannelVersionWithBeginDateRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ChannelResponse> {\n        return this.editChannelVersionWithHttpInfo(meterId, channelId, versionId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ChannelResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Updates a meter&#39;s channel If a channel version exists and is not passed into the request body it will continue to exist and no data will be changed. To delete a specific channel version call DELETE meter/{meterId}/channel/{channelId}/version/{versionId}\n     * \n     * @param meterId Id of the meter the channel is linked to\n     * @param channelId Id of the channel to update\n     * @param body \n     */\n    public editMeterChannel(meterId: number, channelId: number, body?: ChannelEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ChannelResponse> {\n        return this.editMeterChannelWithHttpInfo(meterId, channelId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ChannelResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves a channel and its channel versions linked to a meter\n     * \n     * @param meterId Id of the linked meter to retrieve the channel information for\n     * @param channelId Id of the channel to retrieve information for\n     */\n    public getMeterChannel(meterId: number, channelId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ChannelResponse> {\n        return this.getMeterChannelWithHttpInfo(meterId, channelId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ChannelResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all channel and channel versions linked to a meter\n     * \n     * @param meterId Id of the meter to retrieve the channel information for\n     */\n    public getMeterChannels(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<ChannelResponse>> {\n        return this.getMeterChannelsWithHttpInfo(meterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<ChannelResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Create a new channel version\n     * \n     * @param meterId Id of the meter the channel is linked to\n     * @param channelId Id of the channel to add the version to\n     * @param body \n     */\n    public createChannelVersionWithHttpInfo(meterId: number, channelId: number, body?: ChannelVersionWithBeginDateRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ChannelResponse>> {\n        const path = this.basePath + '/api/v202101/meter/${meterId}/channel/${channelId}/version'\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'channelId' + '}', String(channelId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling createChannelVersion.');\n        }\n        // verify required parameter 'channelId' is not null or undefined\n        if (channelId === null || channelId === undefined) {\n            throw new Error('Required parameter channelId was null or undefined when calling createChannelVersion.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ChannelResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Creates and assigns a channel to a meter\n     * \n     * @param meterId Id of the meter to link the channel to\n     * @param body Data representing the channel being created\n     */\n    public createMeterChannelWithHttpInfo(meterId: number, body?: ChannelCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ChannelResponse>> {\n        const path = this.basePath + '/api/v202101/meter/${meterId}/channel'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling createMeterChannel.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ChannelResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Delete a channel version There must always be one version on a channel If you try and delete the only version on a channel an exception will occur\n     * \n     * @param meterId Id of the meter the channel is linked to\n     * @param channelId Id of the channel the version is linked to\n     * @param versionId Id of the channel version to delete\n     */\n    public deleteChannelVersionWithHttpInfo(meterId: number, channelId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202101/meter/${meterId}/channel/${channelId}/version/${versionId}'\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'channelId' + '}', String(channelId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling deleteChannelVersion.');\n        }\n        // verify required parameter 'channelId' is not null or undefined\n        if (channelId === null || channelId === undefined) {\n            throw new Error('Required parameter channelId was null or undefined when calling deleteChannelVersion.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling deleteChannelVersion.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Deletes a meter&#39;s channel All readings linked to this channel will also be deleted. A channel that is part of a distribution cannot be deleted.\n     * \n     * @param meterId Id of the meter the channel is linked to\n     * @param channelId Id of the channel to delete\n     */\n    public deleteMeterChannelWithHttpInfo(meterId: number, channelId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202101/meter/${meterId}/channel/${channelId}'\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'channelId' + '}', String(channelId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling deleteMeterChannel.');\n        }\n        // verify required parameter 'channelId' is not null or undefined\n        if (channelId === null || channelId === undefined) {\n            throw new Error('Required parameter channelId was null or undefined when calling deleteMeterChannel.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Download file for a channel version custom field\n     * \n     * @param meterId \n     * @param channelId \n     * @param versionId \n     * @param udfId \n     */\n    public downloadChannelVersionCustomFieldFileWithHttpInfo(meterId: number, channelId: number, versionId: number, udfId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202105/meter/${meterId}/channel/${channelId}/version/${versionId}/udf/${udfId}/download'\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'channelId' + '}', String(channelId))\n                    .replace('${' + 'versionId' + '}', String(versionId))\n                    .replace('${' + 'udfId' + '}', String(udfId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling downloadChannelVersionCustomFieldFile.');\n        }\n        // verify required parameter 'channelId' is not null or undefined\n        if (channelId === null || channelId === undefined) {\n            throw new Error('Required parameter channelId was null or undefined when calling downloadChannelVersionCustomFieldFile.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling downloadChannelVersionCustomFieldFile.');\n        }\n        // verify required parameter 'udfId' is not null or undefined\n        if (udfId === null || udfId === undefined) {\n            throw new Error('Required parameter udfId was null or undefined when calling downloadChannelVersionCustomFieldFile.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Update a channel version\n     * \n     * @param meterId Id of the meter the channel is linked to\n     * @param channelId Id of the channel the version is linked to\n     * @param versionId Id of the channel version to update\n     * @param body \n     */\n    public editChannelVersionWithHttpInfo(meterId: number, channelId: number, versionId: number, body?: ChannelVersionWithBeginDateRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ChannelResponse>> {\n        const path = this.basePath + '/api/v202101/meter/${meterId}/channel/${channelId}/version/${versionId}'\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'channelId' + '}', String(channelId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling editChannelVersion.');\n        }\n        // verify required parameter 'channelId' is not null or undefined\n        if (channelId === null || channelId === undefined) {\n            throw new Error('Required parameter channelId was null or undefined when calling editChannelVersion.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling editChannelVersion.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ChannelResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Updates a meter&#39;s channel If a channel version exists and is not passed into the request body it will continue to exist and no data will be changed. To delete a specific channel version call DELETE meter/{meterId}/channel/{channelId}/version/{versionId}\n     * \n     * @param meterId Id of the meter the channel is linked to\n     * @param channelId Id of the channel to update\n     * @param body \n     */\n    public editMeterChannelWithHttpInfo(meterId: number, channelId: number, body?: ChannelEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ChannelResponse>> {\n        const path = this.basePath + '/api/v202101/meter/${meterId}/channel/${channelId}'\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'channelId' + '}', String(channelId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling editMeterChannel.');\n        }\n        // verify required parameter 'channelId' is not null or undefined\n        if (channelId === null || channelId === undefined) {\n            throw new Error('Required parameter channelId was null or undefined when calling editMeterChannel.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ChannelResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Retrieves a channel and its channel versions linked to a meter\n     * \n     * @param meterId Id of the linked meter to retrieve the channel information for\n     * @param channelId Id of the channel to retrieve information for\n     */\n    public getMeterChannelWithHttpInfo(meterId: number, channelId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ChannelResponse>> {\n        const path = this.basePath + '/api/v202101/meter/${meterId}/channel/${channelId}'\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'channelId' + '}', String(channelId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getMeterChannel.');\n        }\n        // verify required parameter 'channelId' is not null or undefined\n        if (channelId === null || channelId === undefined) {\n            throw new Error('Required parameter channelId was null or undefined when calling getMeterChannel.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ChannelResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all channel and channel versions linked to a meter\n     * \n     * @param meterId Id of the meter to retrieve the channel information for\n     */\n    public getMeterChannelsWithHttpInfo(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<ChannelResponse>>> {\n        const path = this.basePath + '/api/v202101/meter/${meterId}/channel'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getMeterChannels.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<ChannelResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { ChargebackProcessorSettings } from '../model/chargebackProcessorSettings';\nimport { ChargebackProcessorSettingsWithoutFilters } from '../model/chargebackProcessorSettingsWithoutFilters';\nimport { ChargebackTaskResponse } from '../model/chargebackTaskResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class ChargebackEngineService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Process one or more Bill Split distributions for a specific billing period\n     * \n     * @param body \n     */\n    public executeBillSplitProcessor(body?: ChargebackProcessorSettings, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ChargebackTaskResponse> {\n        return this.executeBillSplitProcessorWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ChargebackTaskResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Process one or more Calculated Bill distributions for a specific billing period\n     * \n     * @param body \n     */\n    public executeCalculateBillProcessor(body?: ChargebackProcessorSettings, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ChargebackTaskResponse> {\n        return this.executeCalculateBillProcessorWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ChargebackTaskResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Process distributions assigned to a chargeback workflow for a specific billing period. If settings are not provided, the last month will be processed.\n     * \n     * @param chargebackWorkflowId The chargeback workflow id\n     * @param body The processor settings\n     */\n    public executeProcessorByWorkflow(chargebackWorkflowId: number, body?: ChargebackProcessorSettingsWithoutFilters, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<ChargebackTaskResponse>> {\n        return this.executeProcessorByWorkflowWithHttpInfo(chargebackWorkflowId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<ChargebackTaskResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Process distributions assigned to a chargeback workflow step for a specific billing period\n     * \n     * @param chargebackWorkflowStepId The chargeback workflow step id.\n     * @param body The other processor settings.\n     */\n    public executeProcessorByWorkflowStep(chargebackWorkflowStepId: number, body?: ChargebackProcessorSettingsWithoutFilters, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ChargebackTaskResponse> {\n        return this.executeProcessorByWorkflowStepWithHttpInfo(chargebackWorkflowStepId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ChargebackTaskResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Process one or more Bill Split distributions for a specific billing period\n     * \n     * @param body \n     */\n    public executeBillSplitProcessorWithHttpInfo(body?: ChargebackProcessorSettings, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ChargebackTaskResponse>> {\n        const path = this.basePath + '/api/v3/billSplit/exec';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ChargebackTaskResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Process one or more Calculated Bill distributions for a specific billing period\n     * \n     * @param body \n     */\n    public executeCalculateBillProcessorWithHttpInfo(body?: ChargebackProcessorSettings, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ChargebackTaskResponse>> {\n        const path = this.basePath + '/api/v3/calculatedBill/exec';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ChargebackTaskResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Process distributions assigned to a chargeback workflow for a specific billing period. If settings are not provided, the last month will be processed.\n     * \n     * @param chargebackWorkflowId The chargeback workflow id\n     * @param body The processor settings\n     */\n    public executeProcessorByWorkflowWithHttpInfo(chargebackWorkflowId: number, body?: ChargebackProcessorSettingsWithoutFilters, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<ChargebackTaskResponse>>> {\n        const path = this.basePath + '/api/v202304/chargebackWorkflow/${chargebackWorkflowId}/exec'\n                    .replace('${' + 'chargebackWorkflowId' + '}', String(chargebackWorkflowId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'chargebackWorkflowId' is not null or undefined\n        if (chargebackWorkflowId === null || chargebackWorkflowId === undefined) {\n            throw new Error('Required parameter chargebackWorkflowId was null or undefined when calling executeProcessorByWorkflow.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<ChargebackTaskResponse>>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Process distributions assigned to a chargeback workflow step for a specific billing period\n     * \n     * @param chargebackWorkflowStepId The chargeback workflow step id.\n     * @param body The other processor settings.\n     */\n    public executeProcessorByWorkflowStepWithHttpInfo(chargebackWorkflowStepId: number, body?: ChargebackProcessorSettingsWithoutFilters, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ChargebackTaskResponse>> {\n        const path = this.basePath + '/api/v3/chargebackWorkflowStep/${chargebackWorkflowStepId}/exec'\n                    .replace('${' + 'chargebackWorkflowStepId' + '}', String(chargebackWorkflowStepId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'chargebackWorkflowStepId' is not null or undefined\n        if (chargebackWorkflowStepId === null || chargebackWorkflowStepId === undefined) {\n            throw new Error('Required parameter chargebackWorkflowStepId was null or undefined when calling executeProcessorByWorkflowStep.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ChargebackTaskResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { ChargebackTaskRequest } from '../model/chargebackTaskRequest';\nimport { ChargebackTaskResponse } from '../model/chargebackTaskResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class ChargebackTaskService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Delete all bills created by the chargeback task If this is a split task, any source bills will be reset to has not been split If any bills have already been exported they will still be deleted\n     * \n     * @param taskId Identifier for the chargeback task\n     */\n    public deleteChargebackTask(taskId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteChargebackTaskWithHttpInfo(taskId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves a chargeback task with details\n     * \n     * @param taskId Identifier for the chargeback task\n     */\n    public getChargebackTask(taskId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ChargebackTaskResponse> {\n        return this.getChargebackTaskWithHttpInfo(taskId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ChargebackTaskResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves a chargeback task&#39;s error log as an EXCEL file\n     * \n     * @param taskId Identifier for the chargeback task\n     */\n    public getChargebackTaskErrorFile(taskId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<string> {\n        return this.getChargebackTaskErrorFileWithHttpInfo(taskId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<string>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get all chargeback tasks with details\n     * \n     * @param filter Filters to apply\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getChargebackTasks(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<ChargebackTaskResponse>> {\n        return this.getChargebackTasksWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<ChargebackTaskResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Update a chargeback task&#39;s comment\n     * \n     * @param taskId Identifier for the chargeback task to update\n     * @param body Data representing the comment\n     */\n    public updateChargebackTask(taskId: number, body?: ChargebackTaskRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ChargebackTaskResponse> {\n        return this.updateChargebackTaskWithHttpInfo(taskId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ChargebackTaskResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Void all bills created by the chargeback task If this is a split task, any source bills will be reset to has not been split If any bills have already been exported they will still be voided\n     * \n     * @param taskId Identifier for the chargeback task\n     */\n    public voidChargebackTask(taskId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.voidChargebackTaskWithHttpInfo(taskId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Delete all bills created by the chargeback task If this is a split task, any source bills will be reset to has not been split If any bills have already been exported they will still be deleted\n     * \n     * @param taskId Identifier for the chargeback task\n     */\n    public deleteChargebackTaskWithHttpInfo(taskId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/chargebackTask/${taskId}/delete'\n                    .replace('${' + 'taskId' + '}', String(taskId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'taskId' is not null or undefined\n        if (taskId === null || taskId === undefined) {\n            throw new Error('Required parameter taskId was null or undefined when calling deleteChargebackTask.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Retrieves a chargeback task with details\n     * \n     * @param taskId Identifier for the chargeback task\n     */\n    public getChargebackTaskWithHttpInfo(taskId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ChargebackTaskResponse>> {\n        const path = this.basePath + '/api/v3/chargebackTask/${taskId}'\n                    .replace('${' + 'taskId' + '}', String(taskId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'taskId' is not null or undefined\n        if (taskId === null || taskId === undefined) {\n            throw new Error('Required parameter taskId was null or undefined when calling getChargebackTask.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ChargebackTaskResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves a chargeback task&#39;s error log as an EXCEL file\n     * \n     * @param taskId Identifier for the chargeback task\n     */\n    public getChargebackTaskErrorFileWithHttpInfo(taskId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<string>> {\n        const path = this.basePath + '/api/v3/chargebackTask/${taskId}/errorOutput'\n                    .replace('${' + 'taskId' + '}', String(taskId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'taskId' is not null or undefined\n        if (taskId === null || taskId === undefined) {\n            throw new Error('Required parameter taskId was null or undefined when calling getChargebackTaskErrorFile.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<string>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get all chargeback tasks with details\n     * \n     * @param filter Filters to apply\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getChargebackTasksWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<ChargebackTaskResponse>>> {\n        const path = this.basePath + '/api/v3/chargebackTask';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<ChargebackTaskResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Update a chargeback task&#39;s comment\n     * \n     * @param taskId Identifier for the chargeback task to update\n     * @param body Data representing the comment\n     */\n    public updateChargebackTaskWithHttpInfo(taskId: number, body?: ChargebackTaskRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ChargebackTaskResponse>> {\n        const path = this.basePath + '/api/v3/chargebackTask/${taskId}'\n                    .replace('${' + 'taskId' + '}', String(taskId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'taskId' is not null or undefined\n        if (taskId === null || taskId === undefined) {\n            throw new Error('Required parameter taskId was null or undefined when calling updateChargebackTask.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ChargebackTaskResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Void all bills created by the chargeback task If this is a split task, any source bills will be reset to has not been split If any bills have already been exported they will still be voided\n     * \n     * @param taskId Identifier for the chargeback task\n     */\n    public voidChargebackTaskWithHttpInfo(taskId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/chargebackTask/${taskId}/void'\n                    .replace('${' + 'taskId' + '}', String(taskId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'taskId' is not null or undefined\n        if (taskId === null || taskId === undefined) {\n            throw new Error('Required parameter taskId was null or undefined when calling voidChargebackTask.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Post, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { AssignVersionsToStep } from '../model/assignVersionsToStep';\nimport { ChargebackWorkflowCreate } from '../model/chargebackWorkflowCreate';\nimport { ChargebackWorkflowDigestResponse } from '../model/chargebackWorkflowDigestResponse';\nimport { ChargebackWorkflowEdit } from '../model/chargebackWorkflowEdit';\nimport { ChargebackWorkflowResponse } from '../model/chargebackWorkflowResponse';\nimport { ChargebackWorkflowStepChild } from '../model/chargebackWorkflowStepChild';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class ChargebackWorkflowService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Assign a list of bill split or calculate bill versions to a chargeback workflow step of the same type\n     * \n     * @param chargebackWorkflowStepId ID of the chargeback workflow step to which the versions will be assigned\n     * @param billingPeriod The billing period to validate that the provided versions are effective\n     * @param body The chargeback versions to assign to the provided chargeback workflow step\n     */\n    public assignVersionsToStep(chargebackWorkflowStepId: number, billingPeriod: number, body?: AssignVersionsToStep, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ChargebackWorkflowStepChild> {\n        return this.assignVersionsToStepWithHttpInfo(chargebackWorkflowStepId, billingPeriod, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ChargebackWorkflowStepChild>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Create a chargeback workflow\n     * \n     * @param body Definition for chargeback workflow\n     */\n    public createChargebackWorkflow(body?: ChargebackWorkflowCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ChargebackWorkflowResponse> {\n        return this.createChargebackWorkflowWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ChargebackWorkflowResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete a chargeback workflow\n     * \n     * @param chargebackWorkflowId Chargeback workflow id\n     */\n    public deleteChargebackWorkflow(chargebackWorkflowId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteChargebackWorkflowWithHttpInfo(chargebackWorkflowId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete all bills created by a chargeback workflow step If this workflow step was run multiple times, all bills created across all runs for the billing period will be voided If this is a split step, any source bills will be reset to has not been split If any bills have already been exported they will still be deleted\n     * \n     * @param chargebackWorkflowStepId Chargeback Workflow Step ID\n     * @param billingPeriod Billing period to undo\n     */\n    public deleteChargebackWorkflowSteps(chargebackWorkflowStepId: number, billingPeriod?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteChargebackWorkflowStepsWithHttpInfo(chargebackWorkflowStepId, billingPeriod, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit a chargeback workflow\n     * \n     * @param chargebackWorkflowId Chargeback workflow id\n     * @param body Definition for chargeback workflow\n     */\n    public editChargebackWorkflow(chargebackWorkflowId: number, body?: ChargebackWorkflowEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ChargebackWorkflowResponse> {\n        return this.editChargebackWorkflowWithHttpInfo(chargebackWorkflowId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ChargebackWorkflowResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a chargeback workflow\n     * \n     * @param chargebackWorkflowId Chargeback workflow id\n     */\n    public getChargebackWorkflow(chargebackWorkflowId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ChargebackWorkflowResponse> {\n        return this.getChargebackWorkflowWithHttpInfo(chargebackWorkflowId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ChargebackWorkflowResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a digest of all bills by meter for all meters involved in a chargeback workflow step for a given billing period.\n     * \n     * @param chargebackWorkflowStepId The id of the chargeback workflow step.\n     * @param billingPeriod The billing period of the digest.\n     */\n    public getChargebackWorkflowDigest(chargebackWorkflowStepId: number, billingPeriod?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ChargebackWorkflowDigestResponse> {\n        return this.getChargebackWorkflowDigestWithHttpInfo(chargebackWorkflowStepId, billingPeriod, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ChargebackWorkflowDigestResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a single chargeback workflow step\n     * \n     * @param chargebackWorkflowStepId Workflow step ID\n     */\n    public getChargebackWorkflowStep(chargebackWorkflowStepId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ChargebackWorkflowStepChild> {\n        return this.getChargebackWorkflowStepWithHttpInfo(chargebackWorkflowStepId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ChargebackWorkflowStepChild>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a list of chargeback workflow steps\n     * \n     * @param chargebackWorkflowType Pass either \\&quot;split\\&quot; or \\&quot;calculation\\&quot; to filter workflow steps\n     */\n    public getChargebackWorkflowSteps(chargebackWorkflowType?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<ChargebackWorkflowStepChild>> {\n        return this.getChargebackWorkflowStepsWithHttpInfo(chargebackWorkflowType, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<ChargebackWorkflowStepChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a list of chargeback workflows\n     * \n     */\n    public getChargebackWorkflows(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<ChargebackWorkflowResponse>> {\n        return this.getChargebackWorkflowsWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<ChargebackWorkflowResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Void all bills created by a chargeback workflow step for a particular billing period If this workflow step was run multiple times, all bills created across all runs for the billing period will be voided If this is a split step, any source bills will be reset to has not been split If any bills have already been exported they will still be voided\n     * \n     * @param chargebackWorkflowStepId Chargeback Workflow Step ID\n     * @param billingPeriod Billing period to undo\n     */\n    public voidChargebackWorkflowSteps(chargebackWorkflowStepId: number, billingPeriod?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.voidChargebackWorkflowStepsWithHttpInfo(chargebackWorkflowStepId, billingPeriod, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Assign a list of bill split or calculate bill versions to a chargeback workflow step of the same type\n     * \n     * @param chargebackWorkflowStepId ID of the chargeback workflow step to which the versions will be assigned\n     * @param billingPeriod The billing period to validate that the provided versions are effective\n     * @param body The chargeback versions to assign to the provided chargeback workflow step\n     */\n    public assignVersionsToStepWithHttpInfo(chargebackWorkflowStepId: number, billingPeriod: number, body?: AssignVersionsToStep, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ChargebackWorkflowStepChild>> {\n        const path = this.basePath + '/api/v3/chargebackWorkflowStep/${chargebackWorkflowStepId}/billingPeriod/${billingPeriod}/version'\n                    .replace('${' + 'chargebackWorkflowStepId' + '}', String(chargebackWorkflowStepId))\n                    .replace('${' + 'billingPeriod' + '}', String(billingPeriod));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'chargebackWorkflowStepId' is not null or undefined\n        if (chargebackWorkflowStepId === null || chargebackWorkflowStepId === undefined) {\n            throw new Error('Required parameter chargebackWorkflowStepId was null or undefined when calling assignVersionsToStep.');\n        }\n        // verify required parameter 'billingPeriod' is not null or undefined\n        if (billingPeriod === null || billingPeriod === undefined) {\n            throw new Error('Required parameter billingPeriod was null or undefined when calling assignVersionsToStep.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ChargebackWorkflowStepChild>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Create a chargeback workflow\n     * \n     * @param body Definition for chargeback workflow\n     */\n    public createChargebackWorkflowWithHttpInfo(body?: ChargebackWorkflowCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ChargebackWorkflowResponse>> {\n        const path = this.basePath + '/api/v3/chargebackWorkflow';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ChargebackWorkflowResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Delete a chargeback workflow\n     * \n     * @param chargebackWorkflowId Chargeback workflow id\n     */\n    public deleteChargebackWorkflowWithHttpInfo(chargebackWorkflowId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/chargebackWorkflow/${chargebackWorkflowId}'\n                    .replace('${' + 'chargebackWorkflowId' + '}', String(chargebackWorkflowId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'chargebackWorkflowId' is not null or undefined\n        if (chargebackWorkflowId === null || chargebackWorkflowId === undefined) {\n            throw new Error('Required parameter chargebackWorkflowId was null or undefined when calling deleteChargebackWorkflow.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Delete all bills created by a chargeback workflow step If this workflow step was run multiple times, all bills created across all runs for the billing period will be voided If this is a split step, any source bills will be reset to has not been split If any bills have already been exported they will still be deleted\n     * \n     * @param chargebackWorkflowStepId Chargeback Workflow Step ID\n     * @param billingPeriod Billing period to undo\n     */\n    public deleteChargebackWorkflowStepsWithHttpInfo(chargebackWorkflowStepId: number, billingPeriod?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/chargebackWorkflowStep/${chargebackWorkflowStepId}/delete'\n                    .replace('${' + 'chargebackWorkflowStepId' + '}', String(chargebackWorkflowStepId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'chargebackWorkflowStepId' is not null or undefined\n        if (chargebackWorkflowStepId === null || chargebackWorkflowStepId === undefined) {\n            throw new Error('Required parameter chargebackWorkflowStepId was null or undefined when calling deleteChargebackWorkflowSteps.');\n        }\n        if (billingPeriod !== undefined) {\n            queryParameters = queryParameters.set('billingPeriod', <any>billingPeriod);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Edit a chargeback workflow\n     * \n     * @param chargebackWorkflowId Chargeback workflow id\n     * @param body Definition for chargeback workflow\n     */\n    public editChargebackWorkflowWithHttpInfo(chargebackWorkflowId: number, body?: ChargebackWorkflowEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ChargebackWorkflowResponse>> {\n        const path = this.basePath + '/api/v3/chargebackWorkflow/${chargebackWorkflowId}'\n                    .replace('${' + 'chargebackWorkflowId' + '}', String(chargebackWorkflowId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'chargebackWorkflowId' is not null or undefined\n        if (chargebackWorkflowId === null || chargebackWorkflowId === undefined) {\n            throw new Error('Required parameter chargebackWorkflowId was null or undefined when calling editChargebackWorkflow.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ChargebackWorkflowResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Get a chargeback workflow\n     * \n     * @param chargebackWorkflowId Chargeback workflow id\n     */\n    public getChargebackWorkflowWithHttpInfo(chargebackWorkflowId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ChargebackWorkflowResponse>> {\n        const path = this.basePath + '/api/v3/chargebackWorkflow/${chargebackWorkflowId}'\n                    .replace('${' + 'chargebackWorkflowId' + '}', String(chargebackWorkflowId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'chargebackWorkflowId' is not null or undefined\n        if (chargebackWorkflowId === null || chargebackWorkflowId === undefined) {\n            throw new Error('Required parameter chargebackWorkflowId was null or undefined when calling getChargebackWorkflow.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ChargebackWorkflowResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a digest of all bills by meter for all meters involved in a chargeback workflow step for a given billing period.\n     * \n     * @param chargebackWorkflowStepId The id of the chargeback workflow step.\n     * @param billingPeriod The billing period of the digest.\n     */\n    public getChargebackWorkflowDigestWithHttpInfo(chargebackWorkflowStepId: number, billingPeriod?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ChargebackWorkflowDigestResponse>> {\n        const path = this.basePath + '/api/v3/chargebackWorkflow/${chargebackWorkflowStepId}/digest'\n                    .replace('${' + 'chargebackWorkflowStepId' + '}', String(chargebackWorkflowStepId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'chargebackWorkflowStepId' is not null or undefined\n        if (chargebackWorkflowStepId === null || chargebackWorkflowStepId === undefined) {\n            throw new Error('Required parameter chargebackWorkflowStepId was null or undefined when calling getChargebackWorkflowDigest.');\n        }\n        if (billingPeriod !== undefined) {\n            queryParameters = queryParameters.set('billingPeriod', <any>billingPeriod);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ChargebackWorkflowDigestResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a single chargeback workflow step\n     * \n     * @param chargebackWorkflowStepId Workflow step ID\n     */\n    public getChargebackWorkflowStepWithHttpInfo(chargebackWorkflowStepId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ChargebackWorkflowStepChild>> {\n        const path = this.basePath + '/api/v3/chargebackWorkflowStep/${chargebackWorkflowStepId}'\n                    .replace('${' + 'chargebackWorkflowStepId' + '}', String(chargebackWorkflowStepId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'chargebackWorkflowStepId' is not null or undefined\n        if (chargebackWorkflowStepId === null || chargebackWorkflowStepId === undefined) {\n            throw new Error('Required parameter chargebackWorkflowStepId was null or undefined when calling getChargebackWorkflowStep.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ChargebackWorkflowStepChild>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a list of chargeback workflow steps\n     * \n     * @param chargebackWorkflowType Pass either \\&quot;split\\&quot; or \\&quot;calculation\\&quot; to filter workflow steps\n     */\n    public getChargebackWorkflowStepsWithHttpInfo(chargebackWorkflowType?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<ChargebackWorkflowStepChild>>> {\n        const path = this.basePath + '/api/v3/chargebackWorkflowStep';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (chargebackWorkflowType !== undefined) {\n            queryParameters = queryParameters.set('chargebackWorkflowType', <any>chargebackWorkflowType);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<ChargebackWorkflowStepChild>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a list of chargeback workflows\n     * \n     */\n    public getChargebackWorkflowsWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<ChargebackWorkflowResponse>>> {\n        const path = this.basePath + '/api/v3/chargebackWorkflow';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<ChargebackWorkflowResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Void all bills created by a chargeback workflow step for a particular billing period If this workflow step was run multiple times, all bills created across all runs for the billing period will be voided If this is a split step, any source bills will be reset to has not been split If any bills have already been exported they will still be voided\n     * \n     * @param chargebackWorkflowStepId Chargeback Workflow Step ID\n     * @param billingPeriod Billing period to undo\n     */\n    public voidChargebackWorkflowStepsWithHttpInfo(chargebackWorkflowStepId: number, billingPeriod?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/chargebackWorkflowStep/${chargebackWorkflowStepId}/void'\n                    .replace('${' + 'chargebackWorkflowStepId' + '}', String(chargebackWorkflowStepId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'chargebackWorkflowStepId' is not null or undefined\n        if (chargebackWorkflowStepId === null || chargebackWorkflowStepId === undefined) {\n            throw new Error('Required parameter chargebackWorkflowStepId was null or undefined when calling voidChargebackWorkflowSteps.');\n        }\n        if (billingPeriod !== undefined) {\n            queryParameters = queryParameters.set('billingPeriod', <any>billingPeriod);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Post, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { CollectionRequest } from '../model/collectionRequest';\nimport { CollectionResponse } from '../model/collectionResponse';\nimport { UDFFieldChild } from '../model/uDFFieldChild';\nimport { UDFValue } from '../model/uDFValue';\nimport { UpdateResult } from '../model/updateResult';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class CollectionService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Creates a collection\n     * \n     * @param body Data representing the collection being created\n     */\n    public createCollection(body?: CollectionRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CollectionResponse> {\n        return this.createCollectionWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CollectionResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes a collection\n     * \n     * @param collectionId The identifier for the collection being deleted\n     */\n    public deleteCollection(collectionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteCollectionWithHttpInfo(collectionId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Download file for a collection custom field\n     * \n     * @param collectionId The id of the collection\n     * @param udfId The id of the custom field\n     */\n    public downloadCollectionCustomFields(collectionId: number, udfId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.downloadCollectionCustomFieldsWithHttpInfo(collectionId, udfId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits a collection\n     * \n     * @param collectionId The identifier for the collection being edited\n     * @param body Data representing the collection being edited\n     */\n    public editCollection(collectionId: number, body?: CollectionRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CollectionResponse> {\n        return this.editCollectionWithHttpInfo(collectionId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CollectionResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit the custom field values on a collection\n     * \n     * @param collectionId The id of the collection\n     * @param body The list of udf values being edited\n     */\n    public editCollectionCustomFields(collectionId: number, body?: Array<UDFValue>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<UDFFieldChild>> {\n        return this.editCollectionCustomFieldsWithHttpInfo(collectionId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<UDFFieldChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves the collection by ID\n     * \n     * @param collectionId The identifier for the collection being retrieved\n     */\n    public getCollection(collectionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CollectionResponse> {\n        return this.getCollectionWithHttpInfo(collectionId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CollectionResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get custom field values for a collection\n     * \n     * @param collectionId The id of the collection\n     */\n    public getCollectionCustomFields(collectionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<UDFFieldChild>> {\n        return this.getCollectionCustomFieldsWithHttpInfo(collectionId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<UDFFieldChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all the collections\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getCollections(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<CollectionResponse>> {\n        return this.getCollectionsWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<CollectionResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * \n     * \n     * @param parentCollectionId \n     * @param body \n     */\n    public moveCollections(parentCollectionId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.moveCollectionsWithHttpInfo(parentCollectionId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Creates a collection\n     * \n     * @param body Data representing the collection being created\n     */\n    public createCollectionWithHttpInfo(body?: CollectionRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CollectionResponse>> {\n        const path = this.basePath + '/api/v202306/collection';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CollectionResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Deletes a collection\n     * \n     * @param collectionId The identifier for the collection being deleted\n     */\n    public deleteCollectionWithHttpInfo(collectionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202306/collection/${collectionId}'\n                    .replace('${' + 'collectionId' + '}', String(collectionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'collectionId' is not null or undefined\n        if (collectionId === null || collectionId === undefined) {\n            throw new Error('Required parameter collectionId was null or undefined when calling deleteCollection.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Download file for a collection custom field\n     * \n     * @param collectionId The id of the collection\n     * @param udfId The id of the custom field\n     */\n    public downloadCollectionCustomFieldsWithHttpInfo(collectionId: number, udfId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202501/collection/${collectionId}/udf/${udfId}/download'\n                    .replace('${' + 'collectionId' + '}', String(collectionId))\n                    .replace('${' + 'udfId' + '}', String(udfId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'collectionId' is not null or undefined\n        if (collectionId === null || collectionId === undefined) {\n            throw new Error('Required parameter collectionId was null or undefined when calling downloadCollectionCustomFields.');\n        }\n        // verify required parameter 'udfId' is not null or undefined\n        if (udfId === null || udfId === undefined) {\n            throw new Error('Required parameter udfId was null or undefined when calling downloadCollectionCustomFields.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Edits a collection\n     * \n     * @param collectionId The identifier for the collection being edited\n     * @param body Data representing the collection being edited\n     */\n    public editCollectionWithHttpInfo(collectionId: number, body?: CollectionRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CollectionResponse>> {\n        const path = this.basePath + '/api/v202306/collection/${collectionId}'\n                    .replace('${' + 'collectionId' + '}', String(collectionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'collectionId' is not null or undefined\n        if (collectionId === null || collectionId === undefined) {\n            throw new Error('Required parameter collectionId was null or undefined when calling editCollection.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CollectionResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edit the custom field values on a collection\n     * \n     * @param collectionId The id of the collection\n     * @param body The list of udf values being edited\n     */\n    public editCollectionCustomFieldsWithHttpInfo(collectionId: number, body?: Array<UDFValue>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<UDFFieldChild>>> {\n        const path = this.basePath + '/api/v202501/collection/${collectionId}/udf'\n                    .replace('${' + 'collectionId' + '}', String(collectionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'collectionId' is not null or undefined\n        if (collectionId === null || collectionId === undefined) {\n            throw new Error('Required parameter collectionId was null or undefined when calling editCollectionCustomFields.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<UDFFieldChild>>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Retrieves the collection by ID\n     * \n     * @param collectionId The identifier for the collection being retrieved\n     */\n    public getCollectionWithHttpInfo(collectionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CollectionResponse>> {\n        const path = this.basePath + '/api/v202306/collection/${collectionId}'\n                    .replace('${' + 'collectionId' + '}', String(collectionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'collectionId' is not null or undefined\n        if (collectionId === null || collectionId === undefined) {\n            throw new Error('Required parameter collectionId was null or undefined when calling getCollection.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CollectionResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get custom field values for a collection\n     * \n     * @param collectionId The id of the collection\n     */\n    public getCollectionCustomFieldsWithHttpInfo(collectionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<UDFFieldChild>>> {\n        const path = this.basePath + '/api/v202501/collection/${collectionId}/udf'\n                    .replace('${' + 'collectionId' + '}', String(collectionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'collectionId' is not null or undefined\n        if (collectionId === null || collectionId === undefined) {\n            throw new Error('Required parameter collectionId was null or undefined when calling getCollectionCustomFields.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<UDFFieldChild>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all the collections\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getCollectionsWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<CollectionResponse>>> {\n        const path = this.basePath + '/api/v202306/collection';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<CollectionResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * \n     * \n     * @param parentCollectionId \n     * @param body \n     */\n    public moveCollectionsWithHttpInfo(parentCollectionId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v202309/parentCollection/${parentCollectionId}/collection'\n                    .replace('${' + 'parentCollectionId' + '}', String(parentCollectionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'parentCollectionId' is not null or undefined\n        if (parentCollectionId === null || parentCollectionId === undefined) {\n            throw new Error('Required parameter parentCollectionId was null or undefined when calling moveCollections.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { CommodityEditRequest } from '../model/commodityEditRequest';\nimport { CommodityRequest } from '../model/commodityRequest';\nimport { CommodityResponse } from '../model/commodityResponse';\nimport { Unit } from '../model/unit';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class CommodityService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Creates a commodity\n     * \n     * @param body Data representing the commodity being created\n     */\n    public createCommodity(body?: CommodityRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CommodityResponse> {\n        return this.createCommodityWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CommodityResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes a commodity\n     * \n     * @param commodityId The commodity Id\n     */\n    public deleteCommodity(commodityId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteCommodityWithHttpInfo(commodityId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits a commodity\n     * \n     * @param commodityId The commodity Id\n     * @param body Data that will be used to update the commodity\n     */\n    public editCommodity(commodityId: number, body?: CommodityEditRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CommodityResponse> {\n        return this.editCommodityWithHttpInfo(commodityId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CommodityResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Gets the commodities If topmostcostcenter, topmostcollection, topmostplace or account filters are used then the commodities in use at or under that node will be returned. The inUse filter cannot be combined with the above filters.\n     * \n     * @param filter The filters\n     */\n    public getCommodities(filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<CommodityResponse>> {\n        return this.getCommoditiesWithHttpInfo(filter, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<CommodityResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Gets a commodity\n     * \n     * @param commodityId The commodity Id\n     */\n    public getCommodity(commodityId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CommodityResponse> {\n        return this.getCommodityWithHttpInfo(commodityId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CommodityResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Returns a list of units for a specific commodity and value type\n     * \n     * @param commodityId The specific commodity ID\n     * @param valueType The unit type to search for. Not required. Valid values are &#39;use&#39;, &#39;demand&#39;, and &#39;cost&#39;.\n     */\n    public getUnitsByCommodity(commodityId: number, valueType?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<Unit>> {\n        return this.getUnitsByCommodityWithHttpInfo(commodityId, valueType, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<Unit>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Creates a commodity\n     * \n     * @param body Data representing the commodity being created\n     */\n    public createCommodityWithHttpInfo(body?: CommodityRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CommodityResponse>> {\n        const path = this.basePath + '/api/v202410/commodity';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CommodityResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Deletes a commodity\n     * \n     * @param commodityId The commodity Id\n     */\n    public deleteCommodityWithHttpInfo(commodityId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202304/commodity/${commodityId}'\n                    .replace('${' + 'commodityId' + '}', String(commodityId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'commodityId' is not null or undefined\n        if (commodityId === null || commodityId === undefined) {\n            throw new Error('Required parameter commodityId was null or undefined when calling deleteCommodity.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Edits a commodity\n     * \n     * @param commodityId The commodity Id\n     * @param body Data that will be used to update the commodity\n     */\n    public editCommodityWithHttpInfo(commodityId: number, body?: CommodityEditRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CommodityResponse>> {\n        const path = this.basePath + '/api/v202410/commodity/${commodityId}'\n                    .replace('${' + 'commodityId' + '}', String(commodityId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'commodityId' is not null or undefined\n        if (commodityId === null || commodityId === undefined) {\n            throw new Error('Required parameter commodityId was null or undefined when calling editCommodity.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CommodityResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Gets the commodities If topmostcostcenter, topmostcollection, topmostplace or account filters are used then the commodities in use at or under that node will be returned. The inUse filter cannot be combined with the above filters.\n     * \n     * @param filter The filters\n     */\n    public getCommoditiesWithHttpInfo(filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<CommodityResponse>>> {\n        const path = this.basePath + '/api/v202304/commodity';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<CommodityResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Gets a commodity\n     * \n     * @param commodityId The commodity Id\n     */\n    public getCommodityWithHttpInfo(commodityId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CommodityResponse>> {\n        const path = this.basePath + '/api/v202304/commodity/${commodityId}'\n                    .replace('${' + 'commodityId' + '}', String(commodityId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'commodityId' is not null or undefined\n        if (commodityId === null || commodityId === undefined) {\n            throw new Error('Required parameter commodityId was null or undefined when calling getCommodity.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CommodityResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Returns a list of units for a specific commodity and value type\n     * \n     * @param commodityId The specific commodity ID\n     * @param valueType The unit type to search for. Not required. Valid values are &#39;use&#39;, &#39;demand&#39;, and &#39;cost&#39;.\n     */\n    public getUnitsByCommodityWithHttpInfo(commodityId: number, valueType?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<Unit>>> {\n        const path = this.basePath + '/api/v202304/commodity/${commodityId}/unit'\n                    .replace('${' + 'commodityId' + '}', String(commodityId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'commodityId' is not null or undefined\n        if (commodityId === null || commodityId === undefined) {\n            throw new Error('Required parameter commodityId was null or undefined when calling getUnitsByCommodity.');\n        }\n        if (valueType !== undefined) {\n            queryParameters = queryParameters.set('valueType', <any>valueType);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<Unit>>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { CommodityCategoryRequest } from '../model/commodityCategoryRequest';\nimport { CommodityCategoryResponse } from '../model/commodityCategoryResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class CommodityCategoryService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Creates a commodity category\n     * \n     * @param body Data representing the commodity category being created\n     */\n    public createCommodityCategory(body?: CommodityCategoryRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CommodityCategoryResponse> {\n        return this.createCommodityCategoryWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CommodityCategoryResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes a commodity category\n     * \n     * @param commodityCategoryId The commodity category identifier\n     */\n    public deleteCommodityCategory(commodityCategoryId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteCommodityCategoryWithHttpInfo(commodityCategoryId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits a commodity category\n     * \n     * @param commodityCategoryId The commodity category identifier\n     * @param body Data representing the commodity category being created\n     */\n    public editCommodityCategory(commodityCategoryId: number, body?: CommodityCategoryRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CommodityCategoryResponse> {\n        return this.editCommodityCategoryWithHttpInfo(commodityCategoryId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CommodityCategoryResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Gets the commodity categories\n     * \n     */\n    public getCommodityCategories(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<CommodityCategoryResponse>> {\n        return this.getCommodityCategoriesWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<CommodityCategoryResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Gets a commodity category by ID\n     * \n     * @param commodityCategoryId The commodity category identifier\n     */\n    public getCommodityCategory(commodityCategoryId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CommodityCategoryResponse> {\n        return this.getCommodityCategoryWithHttpInfo(commodityCategoryId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CommodityCategoryResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Creates a commodity category\n     * \n     * @param body Data representing the commodity category being created\n     */\n    public createCommodityCategoryWithHttpInfo(body?: CommodityCategoryRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CommodityCategoryResponse>> {\n        const path = this.basePath + '/api/v202402/commodityCategory';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CommodityCategoryResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Deletes a commodity category\n     * \n     * @param commodityCategoryId The commodity category identifier\n     */\n    public deleteCommodityCategoryWithHttpInfo(commodityCategoryId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202402/commodityCategory/${commodityCategoryId}'\n                    .replace('${' + 'commodityCategoryId' + '}', String(commodityCategoryId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'commodityCategoryId' is not null or undefined\n        if (commodityCategoryId === null || commodityCategoryId === undefined) {\n            throw new Error('Required parameter commodityCategoryId was null or undefined when calling deleteCommodityCategory.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Edits a commodity category\n     * \n     * @param commodityCategoryId The commodity category identifier\n     * @param body Data representing the commodity category being created\n     */\n    public editCommodityCategoryWithHttpInfo(commodityCategoryId: number, body?: CommodityCategoryRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CommodityCategoryResponse>> {\n        const path = this.basePath + '/api/v202402/commodityCategory/${commodityCategoryId}'\n                    .replace('${' + 'commodityCategoryId' + '}', String(commodityCategoryId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'commodityCategoryId' is not null or undefined\n        if (commodityCategoryId === null || commodityCategoryId === undefined) {\n            throw new Error('Required parameter commodityCategoryId was null or undefined when calling editCommodityCategory.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CommodityCategoryResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Gets the commodity categories\n     * \n     */\n    public getCommodityCategoriesWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<CommodityCategoryResponse>>> {\n        const path = this.basePath + '/api/v202402/commodityCategory';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<CommodityCategoryResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Gets a commodity category by ID\n     * \n     * @param commodityCategoryId The commodity category identifier\n     */\n    public getCommodityCategoryWithHttpInfo(commodityCategoryId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CommodityCategoryResponse>> {\n        const path = this.basePath + '/api/v202402/commodityCategory/${commodityCategoryId}'\n                    .replace('${' + 'commodityCategoryId' + '}', String(commodityCategoryId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'commodityCategoryId' is not null or undefined\n        if (commodityCategoryId === null || commodityCategoryId === undefined) {\n            throw new Error('Required parameter commodityCategoryId was null or undefined when calling getCommodityCategory.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CommodityCategoryResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { CommodityDigestActualYearlyResponse } from '../model/commodityDigestActualYearlyResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class CommodityDigestService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by commodities for a given number of years- Result includes cost, use, unit cost on an yearly basis.\n     * \n     * @param commodityId The commodity to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     */\n    public getCommodityActualYearly(commodityId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CommodityDigestActualYearlyResponse> {\n        return this.getCommodityActualYearlyWithHttpInfo(commodityId, numberOfYears, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CommodityDigestActualYearlyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Retrieves rolled up actual billing data by commodities for a given number of years- Result includes cost, use, unit cost on an yearly basis.\n     * \n     * @param commodityId The commodity to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     */\n    public getCommodityActualYearlyWithHttpInfo(commodityId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CommodityDigestActualYearlyResponse>> {\n        const path = this.basePath + '/api/v3/commodity/${commodityId}/digest/actual/yearly'\n                    .replace('${' + 'commodityId' + '}', String(commodityId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'commodityId' is not null or undefined\n        if (commodityId === null || commodityId === undefined) {\n            throw new Error('Required parameter commodityId was null or undefined when calling getCommodityActualYearly.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CommodityDigestActualYearlyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { CostCategoryEdit } from '../model/costCategoryEdit';\nimport { CostCategoryResponse } from '../model/costCategoryResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class CostCategoryService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Edits a cost category\n     * \n     * @param costCategoryId The identifier of the cost category to edit\n     * @param body Object containing settings to change\n     */\n    public editCostCategory(costCategoryId: number, body?: CostCategoryEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CostCategoryResponse> {\n        return this.editCostCategoryWithHttpInfo(costCategoryId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CostCategoryResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get all cost categories\n     * \n     */\n    public getCostCategories(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<CostCategoryResponse>> {\n        return this.getCostCategoriesWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<CostCategoryResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Edits a cost category\n     * \n     * @param costCategoryId The identifier of the cost category to edit\n     * @param body Object containing settings to change\n     */\n    public editCostCategoryWithHttpInfo(costCategoryId: number, body?: CostCategoryEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CostCategoryResponse>> {\n        const path = this.basePath + '/api/v202405/costCategory/${costCategoryId}'\n                    .replace('${' + 'costCategoryId' + '}', String(costCategoryId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'costCategoryId' is not null or undefined\n        if (costCategoryId === null || costCategoryId === undefined) {\n            throw new Error('Required parameter costCategoryId was null or undefined when calling editCostCategory.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CostCategoryResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Get all cost categories\n     * \n     */\n    public getCostCategoriesWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<CostCategoryResponse>>> {\n        const path = this.basePath + '/api/v202405/costCategory';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<CostCategoryResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { CostCenterCreate } from '../model/costCenterCreate';\nimport { CostCenterResponse } from '../model/costCenterResponse';\nimport { UpdateResult } from '../model/updateResult';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class CostCenterService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Creates a Cost Center\n     * \n     * @param body Data representing the cost center being created\n     */\n    public createCostCenter(body?: CostCenterCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CostCenterResponse> {\n        return this.createCostCenterWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CostCenterResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes a cost center\n     * \n     * @param costCenterId The identifier for the cost center being deleted\n     */\n    public deleteCostCenter(costCenterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteCostCenterWithHttpInfo(costCenterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits a cost center\n     * \n     * @param costCenterId The identifier for the cost center being edited\n     * @param body Data representing the cost center being edited\n     */\n    public editCostCenter(costCenterId: number, body?: CostCenterCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CostCenterResponse> {\n        return this.editCostCenterWithHttpInfo(costCenterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CostCenterResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves the cost center by ID\n     * \n     * @param costCenterId The identifier for the cost center being retrieved\n     */\n    public getCostCenter(costCenterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CostCenterResponse> {\n        return this.getCostCenterWithHttpInfo(costCenterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CostCenterResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all the cost centers\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getCostCenters(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<CostCenterResponse>> {\n        return this.getCostCentersWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<CostCenterResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Move list of costCenters to be under parentCostCenterId\n     * \n     * @param parentCostCenterId The identifier for the new parent costCenter\n     * @param body List of costCenterIds to move under the parentCostCenterId\n     */\n    public moveCostCenter(parentCostCenterId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.moveCostCenterWithHttpInfo(parentCostCenterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Creates a Cost Center\n     * \n     * @param body Data representing the cost center being created\n     */\n    public createCostCenterWithHttpInfo(body?: CostCenterCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CostCenterResponse>> {\n        const path = this.basePath + '/api/v3/costcenter';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CostCenterResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Deletes a cost center\n     * \n     * @param costCenterId The identifier for the cost center being deleted\n     */\n    public deleteCostCenterWithHttpInfo(costCenterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/costcenter/${costCenterId}'\n                    .replace('${' + 'costCenterId' + '}', String(costCenterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'costCenterId' is not null or undefined\n        if (costCenterId === null || costCenterId === undefined) {\n            throw new Error('Required parameter costCenterId was null or undefined when calling deleteCostCenter.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Edits a cost center\n     * \n     * @param costCenterId The identifier for the cost center being edited\n     * @param body Data representing the cost center being edited\n     */\n    public editCostCenterWithHttpInfo(costCenterId: number, body?: CostCenterCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CostCenterResponse>> {\n        const path = this.basePath + '/api/v3/costcenter/${costCenterId}'\n                    .replace('${' + 'costCenterId' + '}', String(costCenterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'costCenterId' is not null or undefined\n        if (costCenterId === null || costCenterId === undefined) {\n            throw new Error('Required parameter costCenterId was null or undefined when calling editCostCenter.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CostCenterResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Retrieves the cost center by ID\n     * \n     * @param costCenterId The identifier for the cost center being retrieved\n     */\n    public getCostCenterWithHttpInfo(costCenterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CostCenterResponse>> {\n        const path = this.basePath + '/api/v3/costcenter/${costCenterId}'\n                    .replace('${' + 'costCenterId' + '}', String(costCenterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'costCenterId' is not null or undefined\n        if (costCenterId === null || costCenterId === undefined) {\n            throw new Error('Required parameter costCenterId was null or undefined when calling getCostCenter.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CostCenterResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all the cost centers\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getCostCentersWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<CostCenterResponse>>> {\n        const path = this.basePath + '/api/v3/costcenter';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<CostCenterResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Move list of costCenters to be under parentCostCenterId\n     * \n     * @param parentCostCenterId The identifier for the new parent costCenter\n     * @param body List of costCenterIds to move under the parentCostCenterId\n     */\n    public moveCostCenterWithHttpInfo(parentCostCenterId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/parentCostCenter/${parentCostCenterId}/costCenter'\n                    .replace('${' + 'parentCostCenterId' + '}', String(parentCostCenterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'parentCostCenterId' is not null or undefined\n        if (parentCostCenterId === null || parentCostCenterId === undefined) {\n            throw new Error('Required parameter parentCostCenterId was null or undefined when calling moveCostCenter.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { CostCenterDigestActualMonthlyResponse } from '../model/costCenterDigestActualMonthlyResponse';\nimport { CostCenterDigestActualYearlyResponse } from '../model/costCenterDigestActualYearlyResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class CostCenterDigestService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by costCenter for a given number of years- Result includes cost, use, unit cost on a monthly basis. It also includes commodity level break up.\n     * \n     * @param costCenterId The costCenter to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 24 months\n     */\n    public getCostCenterActualMonthly(costCenterId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CostCenterDigestActualMonthlyResponse> {\n        return this.getCostCenterActualMonthlyWithHttpInfo(costCenterId, numberOfYears, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CostCenterDigestActualMonthlyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by costCenter for a given number of years- Result includes cost, use, unit cost on a monthly basis. It also includes commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 24 months\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getCostCenterActualMonthlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<CostCenterDigestActualMonthlyResponse>> {\n        return this.getCostCenterActualMonthlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<CostCenterDigestActualMonthlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by costCenter for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes commodity level break up.\n     * \n     * @param costCenterId The costCenter to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getCostCenterActualYearly(costCenterId: number, numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CostCenterDigestActualYearlyResponse> {\n        return this.getCostCenterActualYearlyWithHttpInfo(costCenterId, numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CostCenterDigestActualYearlyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by costCenter for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getCostCenterActualYearlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<CostCenterDigestActualYearlyResponse>> {\n        return this.getCostCenterActualYearlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<CostCenterDigestActualYearlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Retrieves rolled up actual billing data by costCenter for a given number of years- Result includes cost, use, unit cost on a monthly basis. It also includes commodity level break up.\n     * \n     * @param costCenterId The costCenter to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 24 months\n     */\n    public getCostCenterActualMonthlyWithHttpInfo(costCenterId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CostCenterDigestActualMonthlyResponse>> {\n        const path = this.basePath + '/api/v3/costCenter/${costCenterId}/digest/actual/monthly'\n                    .replace('${' + 'costCenterId' + '}', String(costCenterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'costCenterId' is not null or undefined\n        if (costCenterId === null || costCenterId === undefined) {\n            throw new Error('Required parameter costCenterId was null or undefined when calling getCostCenterActualMonthly.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CostCenterDigestActualMonthlyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by costCenter for a given number of years- Result includes cost, use, unit cost on a monthly basis. It also includes commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 24 months\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getCostCenterActualMonthlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<CostCenterDigestActualMonthlyResponse>>> {\n        const path = this.basePath + '/api/v3/costCenter/digest/actual/monthly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<CostCenterDigestActualMonthlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by costCenter for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes commodity level break up.\n     * \n     * @param costCenterId The costCenter to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getCostCenterActualYearlyWithHttpInfo(costCenterId: number, numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CostCenterDigestActualYearlyResponse>> {\n        const path = this.basePath + '/api/v3/costCenter/${costCenterId}/digest/actual/yearly'\n                    .replace('${' + 'costCenterId' + '}', String(costCenterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'costCenterId' is not null or undefined\n        if (costCenterId === null || costCenterId === undefined) {\n            throw new Error('Required parameter costCenterId was null or undefined when calling getCostCenterActualYearly.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CostCenterDigestActualYearlyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by costCenter for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getCostCenterActualYearlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<CostCenterDigestActualYearlyResponse>>> {\n        const path = this.basePath + '/api/v3/costCenter/digest/actual/yearly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<CostCenterDigestActualYearlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { Country } from '../model/country';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class CountryService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Retrieves a list of all possible countries\n     * \n     */\n    public getCountries(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<Country>> {\n        return this.getCountriesWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<Country>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Retrieves a list of all possible countries\n     * \n     */\n    public getCountriesWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<Country>>> {\n        const path = this.basePath + '/api/v3/country';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<Country>>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { CustomerResponse } from '../model/customerResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class CustomerService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Retrieves an array of customers.\n     * \n     * @param filter \n     */\n    public getCustomers(filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<CustomerResponse>> {\n        return this.getCustomersWithHttpInfo(filter, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<CustomerResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Retrieves an array of customers.\n     * \n     * @param filter \n     */\n    public getCustomersWithHttpInfo(filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<CustomerResponse>>> {\n        const path = this.basePath + '/api/v3/customer';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<CustomerResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { DashboardCopy } from '../model/dashboardCopy';\nimport { DashboardCreate } from '../model/dashboardCreate';\nimport { DashboardEdit } from '../model/dashboardEdit';\nimport { DashboardGlobalSettingsEdit } from '../model/dashboardGlobalSettingsEdit';\nimport { DashboardResponse } from '../model/dashboardResponse';\nimport { MapDashboardSettingsRequest } from '../model/mapDashboardSettingsRequest';\nimport { MapDashboardSettingsResponse } from '../model/mapDashboardSettingsResponse';\nimport { ShareRequest } from '../model/shareRequest';\nimport { ShareResponse } from '../model/shareResponse';\nimport { SpecificWidgetResponse } from '../model/specificWidgetResponse';\nimport { ToggleVisible } from '../model/toggleVisible';\nimport { WidgetCreate } from '../model/widgetCreate';\nimport { WidgetEdit } from '../model/widgetEdit';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class DashboardService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Add a widget to a dashboard To add widgets to a dashboard you must have created the dashboard or have DashboardAdministrator Manage permission and the dashboard is shared at all or have DashboardAdministrator Manage permission and the dashboard is public or have SharedDashboardsOrMaps Edit permission and the dashboard is shared with you\n     * \n     * @param dashboardId dashboard\n     * @param body Request object\n     */\n    public addWidget(dashboardId: number, body?: WidgetCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<SpecificWidgetResponse> {\n        return this.addWidgetWithHttpInfo(dashboardId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<SpecificWidgetResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Copy a dashboard To copy a dashboard you must have created the dashboard or have DashboardAdministrator Manage permission and the dashboard is shared at all or have DashboardAdministrator Manage permission and the dashboard is public or have SharedDashboardsOrMaps View permission and the dashboard is shared with you\n     * \n     * @param dashboardId Specific dashboard\n     * @param body Request object\n     */\n    public copyDashboard(dashboardId: number, body?: DashboardCopy, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<DashboardResponse> {\n        return this.copyDashboardWithHttpInfo(dashboardId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<DashboardResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Creates a dashboard\n     * \n     * @param body \n     */\n    public createDashboard(body?: DashboardCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<DashboardResponse> {\n        return this.createDashboardWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<DashboardResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Update the visibility of a dashboard for the current user This must be a dashboard you can see Which means you must have created the dashboard or have DashboardAdministrator Manage permission and the dashboard is shared at all or have DashboardAdministrator Manage permission and the dashboard is public or have SharedDashboardsOrMaps View permission and the dashboard is shared with you\n     * \n     * @param dashboardId Specific dashboard\n     * @param body Set Visibility\n     */\n    public dashboardActionVisible(dashboardId: number, body?: ToggleVisible, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<DashboardResponse> {\n        return this.dashboardActionVisibleWithHttpInfo(dashboardId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<DashboardResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete a dashboard To delete a dashboard you must have created it or have DashboardAdministrator Manage permission and the dashboard is shared at all or have DashboardAdministrator Manage permission and the dashboard is public\n     * \n     * @param dashboardId Specific dashboard\n     */\n    public deleteDashboard(dashboardId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteDashboardWithHttpInfo(dashboardId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit a dashboard To edit a dashboard you must have created the dashboard or have DashboardAdministrator Manage permission and the dashboard is shared at all or have DashboardAdministrator Manage permission and the dashboard is public or have SharedDashboardsOrMaps Edit permission and the dashboard is shared with you\n     * \n     * @param dashboardId \n     * @param body \n     */\n    public editDashboard(dashboardId: number, body?: DashboardEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<DashboardResponse> {\n        return this.editDashboardWithHttpInfo(dashboardId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<DashboardResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits the public display settings for a dashboard. Settings can only be applied to public dashboards. Filter settings cannot be applied to Map dashboards. To apply these settings, you must have the PublicDashboardsOrMaps Manage permission. You must also have either created the dashboard or have DashboardAdministrator Manage and the dashboard is shared at all or have DashboardAdministrator Manage permission and the dashboard is public or have SharedDashboardsOrMaps Edit permission and the dashboard is shared with you\n     * \n     * @param dashboardId The identifier for the dashboard to apply settings to.\n     * @param body An object containing the settings to be applied.\n     */\n    public editDashboardSettings(dashboardId: number, body?: DashboardGlobalSettingsEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<DashboardResponse> {\n        return this.editDashboardSettingsWithHttpInfo(dashboardId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<DashboardResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Update the shared users and user groups for a dashboard To remove sharing completely set SharedWithEveryone to false, SharedUserIds to [], and SharedUserGroupIds to [] You must have created the dashboard and have SharedDashboardsOrMaps Create permission or have DashboardAdministrator Manage permission and the dashboard must be shared at all or have DashboardAdministrator Manage permission and the dashboard is public\n     * \n     * @param dashboardId Dashboard Identifier\n     * @param body users and user groups to share the dashboard with\n     */\n    public editDashboardShare(dashboardId: number, body?: ShareRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ShareResponse> {\n        return this.editDashboardShareWithHttpInfo(dashboardId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ShareResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Reorder, edit, and delete specific widgets on a dashboard. To edit dashboard widgets you must have created the dashboard or have DashboardAdministrator Manage permission and the dashboard is shared at all or have DashboardAdministrator Manage permission and the dashboard is public or have SharedDashboardsOrMaps Edit permission and the dashboard is shared with you\n     * \n     * @param dashboardId dashboard\n     * @param body Request object\n     */\n    public editDashboardWidgets(dashboardId: number, body?: Array<WidgetEdit>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<SpecificWidgetResponse>> {\n        return this.editDashboardWidgetsWithHttpInfo(dashboardId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<SpecificWidgetResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Applies display settings and filters to a map dashboard. These settings are specific to map dashboards, and cannot be applied to standard dashboards. To apply these settings, You must also have either: Created the dashboard or have DashboardAdministrator Manage and the dashboard is shared at all or have DashboardAdministrator Manage permission and the dashboard is public or have SharedDashboardsOrMaps Edit permission and the dashboard is shared with you\n     * \n     * @param dashboardId The identifier of the dashboard to apply these settings to\n     * @param body Object containing the settings to be applied.\n     */\n    public editMapDashboardSettings(dashboardId: number, body?: MapDashboardSettingsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<MapDashboardSettingsResponse> {\n        return this.editMapDashboardSettingsWithHttpInfo(dashboardId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<MapDashboardSettingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves a dashboard. For a dashboard to be returned you must have created the dashboard or have DashboardAdministrator Manage permission and the dashboard is shared at all or have DashboardAdministrator Manage permission and the dashboard is public or have SharedDashboardsOrMaps View permission and the dashboard is shared with you\n     * \n     * @param dashboardId Specific dashboard\n     */\n    public getDashboard(dashboardId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<DashboardResponse> {\n        return this.getDashboardWithHttpInfo(dashboardId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<DashboardResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get the individual users and user groups a dashboard is shared with For a dashboard to be returned you must have created the dashboard or have DashboardAdministrator Manage permission and the dashboard is shared at all or have DashboardAdministrator Manage permission and the dashboard is public or have SharedDashboardsOrMaps View permission and the dashboard is shared with you\n     * \n     * @param dashboardId Dashboard Identifier\n     */\n    public getDashboardShare(dashboardId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ShareResponse> {\n        return this.getDashboardShareWithHttpInfo(dashboardId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ShareResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get all widgets on a dashboard For a dashboard to be returned you must have created the dashboard or have DashboardAdministrator Manage permission and the dashboard is shared at all or have DashboardAdministrator Manage permission and the dashboard is public or have SharedDashboardsOrMaps View permission and the dashboard is shared with you\n     * \n     * @param dashboardId Dashboard Identifier\n     */\n    public getDashboardWidgets(dashboardId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<SpecificWidgetResponse>> {\n        return this.getDashboardWidgetsWithHttpInfo(dashboardId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<SpecificWidgetResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves an array of dashboards. The array of dashboards can be filtered by a number of criteria. See the filter property for more details For a dashboard to be returned you must have created the dashboard or have DashboardAdministrator Manage permission and the dashboard is shared at all or have DashboardAdministrator Manage permission and the dashboard is public or have SharedDashboardsOrMaps View permission and the dashboard is shared with you\n     * \n     * @param filter \n     */\n    public getDashboards(filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<DashboardResponse>> {\n        return this.getDashboardsWithHttpInfo(filter, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<DashboardResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Gets the current display settings and filters for a specific map dashboard. Cannot be used to retreive settings for a standard dashboard.\n     * \n     * @param dashboardId The identifier of the dashboard to get the settings of\n     */\n    public getMapDashboardSettings(dashboardId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<MapDashboardSettingsResponse> {\n        return this.getMapDashboardSettingsWithHttpInfo(dashboardId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<MapDashboardSettingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Add a widget to a dashboard To add widgets to a dashboard you must have created the dashboard or have DashboardAdministrator Manage permission and the dashboard is shared at all or have DashboardAdministrator Manage permission and the dashboard is public or have SharedDashboardsOrMaps Edit permission and the dashboard is shared with you\n     * \n     * @param dashboardId dashboard\n     * @param body Request object\n     */\n    public addWidgetWithHttpInfo(dashboardId: number, body?: WidgetCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<SpecificWidgetResponse>> {\n        const path = this.basePath + '/api/v3/dashboard/${dashboardId}/widget'\n                    .replace('${' + 'dashboardId' + '}', String(dashboardId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'dashboardId' is not null or undefined\n        if (dashboardId === null || dashboardId === undefined) {\n            throw new Error('Required parameter dashboardId was null or undefined when calling addWidget.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<SpecificWidgetResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Copy a dashboard To copy a dashboard you must have created the dashboard or have DashboardAdministrator Manage permission and the dashboard is shared at all or have DashboardAdministrator Manage permission and the dashboard is public or have SharedDashboardsOrMaps View permission and the dashboard is shared with you\n     * \n     * @param dashboardId Specific dashboard\n     * @param body Request object\n     */\n    public copyDashboardWithHttpInfo(dashboardId: number, body?: DashboardCopy, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<DashboardResponse>> {\n        const path = this.basePath + '/api/v3/dashboard/${dashboardId}/copy'\n                    .replace('${' + 'dashboardId' + '}', String(dashboardId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'dashboardId' is not null or undefined\n        if (dashboardId === null || dashboardId === undefined) {\n            throw new Error('Required parameter dashboardId was null or undefined when calling copyDashboard.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<DashboardResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Creates a dashboard\n     * \n     * @param body \n     */\n    public createDashboardWithHttpInfo(body?: DashboardCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<DashboardResponse>> {\n        const path = this.basePath + '/api/v3/dashboard';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<DashboardResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Update the visibility of a dashboard for the current user This must be a dashboard you can see Which means you must have created the dashboard or have DashboardAdministrator Manage permission and the dashboard is shared at all or have DashboardAdministrator Manage permission and the dashboard is public or have SharedDashboardsOrMaps View permission and the dashboard is shared with you\n     * \n     * @param dashboardId Specific dashboard\n     * @param body Set Visibility\n     */\n    public dashboardActionVisibleWithHttpInfo(dashboardId: number, body?: ToggleVisible, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<DashboardResponse>> {\n        const path = this.basePath + '/api/v3/dashboard/${dashboardId}/visible'\n                    .replace('${' + 'dashboardId' + '}', String(dashboardId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'dashboardId' is not null or undefined\n        if (dashboardId === null || dashboardId === undefined) {\n            throw new Error('Required parameter dashboardId was null or undefined when calling dashboardActionVisible.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<DashboardResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Delete a dashboard To delete a dashboard you must have created it or have DashboardAdministrator Manage permission and the dashboard is shared at all or have DashboardAdministrator Manage permission and the dashboard is public\n     * \n     * @param dashboardId Specific dashboard\n     */\n    public deleteDashboardWithHttpInfo(dashboardId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/dashboard/${dashboardId}'\n                    .replace('${' + 'dashboardId' + '}', String(dashboardId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'dashboardId' is not null or undefined\n        if (dashboardId === null || dashboardId === undefined) {\n            throw new Error('Required parameter dashboardId was null or undefined when calling deleteDashboard.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Edit a dashboard To edit a dashboard you must have created the dashboard or have DashboardAdministrator Manage permission and the dashboard is shared at all or have DashboardAdministrator Manage permission and the dashboard is public or have SharedDashboardsOrMaps Edit permission and the dashboard is shared with you\n     * \n     * @param dashboardId \n     * @param body \n     */\n    public editDashboardWithHttpInfo(dashboardId: number, body?: DashboardEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<DashboardResponse>> {\n        const path = this.basePath + '/api/v3/dashboard/${dashboardId}'\n                    .replace('${' + 'dashboardId' + '}', String(dashboardId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'dashboardId' is not null or undefined\n        if (dashboardId === null || dashboardId === undefined) {\n            throw new Error('Required parameter dashboardId was null or undefined when calling editDashboard.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<DashboardResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edits the public display settings for a dashboard. Settings can only be applied to public dashboards. Filter settings cannot be applied to Map dashboards. To apply these settings, you must have the PublicDashboardsOrMaps Manage permission. You must also have either created the dashboard or have DashboardAdministrator Manage and the dashboard is shared at all or have DashboardAdministrator Manage permission and the dashboard is public or have SharedDashboardsOrMaps Edit permission and the dashboard is shared with you\n     * \n     * @param dashboardId The identifier for the dashboard to apply settings to.\n     * @param body An object containing the settings to be applied.\n     */\n    public editDashboardSettingsWithHttpInfo(dashboardId: number, body?: DashboardGlobalSettingsEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<DashboardResponse>> {\n        const path = this.basePath + '/api/v202208/dashboard/${dashboardId}/publicsetting'\n                    .replace('${' + 'dashboardId' + '}', String(dashboardId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'dashboardId' is not null or undefined\n        if (dashboardId === null || dashboardId === undefined) {\n            throw new Error('Required parameter dashboardId was null or undefined when calling editDashboardSettings.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<DashboardResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Update the shared users and user groups for a dashboard To remove sharing completely set SharedWithEveryone to false, SharedUserIds to [], and SharedUserGroupIds to [] You must have created the dashboard and have SharedDashboardsOrMaps Create permission or have DashboardAdministrator Manage permission and the dashboard must be shared at all or have DashboardAdministrator Manage permission and the dashboard is public\n     * \n     * @param dashboardId Dashboard Identifier\n     * @param body users and user groups to share the dashboard with\n     */\n    public editDashboardShareWithHttpInfo(dashboardId: number, body?: ShareRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ShareResponse>> {\n        const path = this.basePath + '/api/v3/dashboard/${dashboardId}/share'\n                    .replace('${' + 'dashboardId' + '}', String(dashboardId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'dashboardId' is not null or undefined\n        if (dashboardId === null || dashboardId === undefined) {\n            throw new Error('Required parameter dashboardId was null or undefined when calling editDashboardShare.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ShareResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Reorder, edit, and delete specific widgets on a dashboard. To edit dashboard widgets you must have created the dashboard or have DashboardAdministrator Manage permission and the dashboard is shared at all or have DashboardAdministrator Manage permission and the dashboard is public or have SharedDashboardsOrMaps Edit permission and the dashboard is shared with you\n     * \n     * @param dashboardId dashboard\n     * @param body Request object\n     */\n    public editDashboardWidgetsWithHttpInfo(dashboardId: number, body?: Array<WidgetEdit>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<SpecificWidgetResponse>>> {\n        const path = this.basePath + '/api/v202208/dashboard/${dashboardId}/widget'\n                    .replace('${' + 'dashboardId' + '}', String(dashboardId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'dashboardId' is not null or undefined\n        if (dashboardId === null || dashboardId === undefined) {\n            throw new Error('Required parameter dashboardId was null or undefined when calling editDashboardWidgets.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<SpecificWidgetResponse>>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Applies display settings and filters to a map dashboard. These settings are specific to map dashboards, and cannot be applied to standard dashboards. To apply these settings, You must also have either: Created the dashboard or have DashboardAdministrator Manage and the dashboard is shared at all or have DashboardAdministrator Manage permission and the dashboard is public or have SharedDashboardsOrMaps Edit permission and the dashboard is shared with you\n     * \n     * @param dashboardId The identifier of the dashboard to apply these settings to\n     * @param body Object containing the settings to be applied.\n     */\n    public editMapDashboardSettingsWithHttpInfo(dashboardId: number, body?: MapDashboardSettingsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<MapDashboardSettingsResponse>> {\n        const path = this.basePath + '/api/v202208/dashboard/${dashboardId}/mapsetting'\n                    .replace('${' + 'dashboardId' + '}', String(dashboardId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'dashboardId' is not null or undefined\n        if (dashboardId === null || dashboardId === undefined) {\n            throw new Error('Required parameter dashboardId was null or undefined when calling editMapDashboardSettings.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<MapDashboardSettingsResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Retrieves a dashboard. For a dashboard to be returned you must have created the dashboard or have DashboardAdministrator Manage permission and the dashboard is shared at all or have DashboardAdministrator Manage permission and the dashboard is public or have SharedDashboardsOrMaps View permission and the dashboard is shared with you\n     * \n     * @param dashboardId Specific dashboard\n     */\n    public getDashboardWithHttpInfo(dashboardId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<DashboardResponse>> {\n        const path = this.basePath + '/api/v3/dashboard/${dashboardId}'\n                    .replace('${' + 'dashboardId' + '}', String(dashboardId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'dashboardId' is not null or undefined\n        if (dashboardId === null || dashboardId === undefined) {\n            throw new Error('Required parameter dashboardId was null or undefined when calling getDashboard.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<DashboardResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get the individual users and user groups a dashboard is shared with For a dashboard to be returned you must have created the dashboard or have DashboardAdministrator Manage permission and the dashboard is shared at all or have DashboardAdministrator Manage permission and the dashboard is public or have SharedDashboardsOrMaps View permission and the dashboard is shared with you\n     * \n     * @param dashboardId Dashboard Identifier\n     */\n    public getDashboardShareWithHttpInfo(dashboardId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ShareResponse>> {\n        const path = this.basePath + '/api/v3/dashboard/${dashboardId}/share'\n                    .replace('${' + 'dashboardId' + '}', String(dashboardId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'dashboardId' is not null or undefined\n        if (dashboardId === null || dashboardId === undefined) {\n            throw new Error('Required parameter dashboardId was null or undefined when calling getDashboardShare.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ShareResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get all widgets on a dashboard For a dashboard to be returned you must have created the dashboard or have DashboardAdministrator Manage permission and the dashboard is shared at all or have DashboardAdministrator Manage permission and the dashboard is public or have SharedDashboardsOrMaps View permission and the dashboard is shared with you\n     * \n     * @param dashboardId Dashboard Identifier\n     */\n    public getDashboardWidgetsWithHttpInfo(dashboardId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<SpecificWidgetResponse>>> {\n        const path = this.basePath + '/api/v3/dashboard/${dashboardId}/widget'\n                    .replace('${' + 'dashboardId' + '}', String(dashboardId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'dashboardId' is not null or undefined\n        if (dashboardId === null || dashboardId === undefined) {\n            throw new Error('Required parameter dashboardId was null or undefined when calling getDashboardWidgets.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<SpecificWidgetResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves an array of dashboards. The array of dashboards can be filtered by a number of criteria. See the filter property for more details For a dashboard to be returned you must have created the dashboard or have DashboardAdministrator Manage permission and the dashboard is shared at all or have DashboardAdministrator Manage permission and the dashboard is public or have SharedDashboardsOrMaps View permission and the dashboard is shared with you\n     * \n     * @param filter \n     */\n    public getDashboardsWithHttpInfo(filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<DashboardResponse>>> {\n        const path = this.basePath + '/api/v3/dashboard';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<DashboardResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Gets the current display settings and filters for a specific map dashboard. Cannot be used to retreive settings for a standard dashboard.\n     * \n     * @param dashboardId The identifier of the dashboard to get the settings of\n     */\n    public getMapDashboardSettingsWithHttpInfo(dashboardId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<MapDashboardSettingsResponse>> {\n        const path = this.basePath + '/api/v202208/dashboard/${dashboardId}/mapsetting'\n                    .replace('${' + 'dashboardId' + '}', String(dashboardId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'dashboardId' is not null or undefined\n        if (dashboardId === null || dashboardId === undefined) {\n            throw new Error('Required parameter dashboardId was null or undefined when calling getMapDashboardSettings.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<MapDashboardSettingsResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { DataPointCreate } from '../model/dataPointCreate';\nimport { DataPointEdit } from '../model/dataPointEdit';\nimport { DataPointResponse } from '../model/dataPointResponse';\nimport { DataPointSentinel } from '../model/dataPointSentinel';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class DataPointService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Creates a data point\n     * \n     * @param body Data representing the data point being created\n     */\n    public createDataPoint(body?: DataPointCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<DataPointResponse> {\n        return this.createDataPointWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<DataPointResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes a data point\n     * \n     * @param dataPointId The data point identifier\n     */\n    public deleteDataPoint(dataPointId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteDataPointWithHttpInfo(dataPointId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits a data point\n     * \n     * @param dataPointId The data point identifier\n     * @param body Data representing the data point being edited\n     */\n    public editDataPoint(dataPointId: number, body?: DataPointEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<DataPointResponse> {\n        return this.editDataPointWithHttpInfo(dataPointId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<DataPointResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits the data point sentinel configuration\n     * \n     * @param dataPointId \n     * @param body The data point identifier\n     */\n    public enableSentinel(dataPointId: number, body?: DataPointSentinel, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<DataPointResponse> {\n        return this.enableSentinelWithHttpInfo(dataPointId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<DataPointResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves a data point\n     * \n     * @param dataPointId The data point identifier\n     */\n    public getDataPoint(dataPointId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<DataPointResponse> {\n        return this.getDataPointWithHttpInfo(dataPointId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<DataPointResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all data points\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getDataPoints(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<DataPointResponse>> {\n        return this.getDataPointsWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<DataPointResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Creates a data point\n     * \n     * @param body Data representing the data point being created\n     */\n    public createDataPointWithHttpInfo(body?: DataPointCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<DataPointResponse>> {\n        const path = this.basePath + '/api/v202406/datapoint';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<DataPointResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Deletes a data point\n     * \n     * @param dataPointId The data point identifier\n     */\n    public deleteDataPointWithHttpInfo(dataPointId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202406/datapoint/${dataPointId}'\n                    .replace('${' + 'dataPointId' + '}', String(dataPointId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'dataPointId' is not null or undefined\n        if (dataPointId === null || dataPointId === undefined) {\n            throw new Error('Required parameter dataPointId was null or undefined when calling deleteDataPoint.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Edits a data point\n     * \n     * @param dataPointId The data point identifier\n     * @param body Data representing the data point being edited\n     */\n    public editDataPointWithHttpInfo(dataPointId: number, body?: DataPointEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<DataPointResponse>> {\n        const path = this.basePath + '/api/v202406/datapoint/${dataPointId}'\n                    .replace('${' + 'dataPointId' + '}', String(dataPointId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'dataPointId' is not null or undefined\n        if (dataPointId === null || dataPointId === undefined) {\n            throw new Error('Required parameter dataPointId was null or undefined when calling editDataPoint.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<DataPointResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edits the data point sentinel configuration\n     * \n     * @param dataPointId \n     * @param body The data point identifier\n     */\n    public enableSentinelWithHttpInfo(dataPointId: number, body?: DataPointSentinel, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<DataPointResponse>> {\n        const path = this.basePath + '/api/v202406/datapoint/${dataPointId}/sentinel'\n                    .replace('${' + 'dataPointId' + '}', String(dataPointId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'dataPointId' is not null or undefined\n        if (dataPointId === null || dataPointId === undefined) {\n            throw new Error('Required parameter dataPointId was null or undefined when calling enableSentinel.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<DataPointResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Retrieves a data point\n     * \n     * @param dataPointId The data point identifier\n     */\n    public getDataPointWithHttpInfo(dataPointId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<DataPointResponse>> {\n        const path = this.basePath + '/api/v202406/datapoint/${dataPointId}'\n                    .replace('${' + 'dataPointId' + '}', String(dataPointId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'dataPointId' is not null or undefined\n        if (dataPointId === null || dataPointId === undefined) {\n            throw new Error('Required parameter dataPointId was null or undefined when calling getDataPoint.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<DataPointResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all data points\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getDataPointsWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<DataPointResponse>>> {\n        const path = this.basePath + '/api/v202406/datapoint';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<DataPointResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { EmissionRecordRequest } from '../model/emissionRecordRequest';\nimport { EmissionRecordResponse } from '../model/emissionRecordResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class EmissionRecordService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Create an emission record\n     * \n     * @param body Data representing the record being created\n     */\n    public createEmissionRecord(body?: EmissionRecordRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EmissionRecordResponse> {\n        return this.createEmissionRecordWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EmissionRecordResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete an emission record\n     * \n     * @param emissionRecordId The Id of the emission record to delete\n     */\n    public deleteEmissionRecord(emissionRecordId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteEmissionRecordWithHttpInfo(emissionRecordId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit an emission record\n     * \n     * @param emissionRecordId The Id of the emission record to edit\n     * @param body Data representing the emission record being edited\n     */\n    public editEmissionRecord(emissionRecordId: number, body?: EmissionRecordRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EmissionRecordResponse> {\n        return this.editEmissionRecordWithHttpInfo(emissionRecordId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EmissionRecordResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieve an emission record by ID\n     * \n     * @param emissionRecordId The Id of the emission record to retrieve\n     */\n    public getEmissionRecord(emissionRecordId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EmissionRecordResponse> {\n        return this.getEmissionRecordWithHttpInfo(emissionRecordId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EmissionRecordResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieve a list of emission records\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getEmissionRecords(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<EmissionRecordResponse>> {\n        return this.getEmissionRecordsWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<EmissionRecordResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Create an emission record\n     * \n     * @param body Data representing the record being created\n     */\n    public createEmissionRecordWithHttpInfo(body?: EmissionRecordRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EmissionRecordResponse>> {\n        const path = this.basePath + '/api/v202306/emissionRecord';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EmissionRecordResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Delete an emission record\n     * \n     * @param emissionRecordId The Id of the emission record to delete\n     */\n    public deleteEmissionRecordWithHttpInfo(emissionRecordId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202306/emissionRecord/${emissionRecordId}'\n                    .replace('${' + 'emissionRecordId' + '}', String(emissionRecordId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'emissionRecordId' is not null or undefined\n        if (emissionRecordId === null || emissionRecordId === undefined) {\n            throw new Error('Required parameter emissionRecordId was null or undefined when calling deleteEmissionRecord.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Edit an emission record\n     * \n     * @param emissionRecordId The Id of the emission record to edit\n     * @param body Data representing the emission record being edited\n     */\n    public editEmissionRecordWithHttpInfo(emissionRecordId: number, body?: EmissionRecordRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EmissionRecordResponse>> {\n        const path = this.basePath + '/api/v202306/emissionRecord/${emissionRecordId}'\n                    .replace('${' + 'emissionRecordId' + '}', String(emissionRecordId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'emissionRecordId' is not null or undefined\n        if (emissionRecordId === null || emissionRecordId === undefined) {\n            throw new Error('Required parameter emissionRecordId was null or undefined when calling editEmissionRecord.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EmissionRecordResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Retrieve an emission record by ID\n     * \n     * @param emissionRecordId The Id of the emission record to retrieve\n     */\n    public getEmissionRecordWithHttpInfo(emissionRecordId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EmissionRecordResponse>> {\n        const path = this.basePath + '/api/v202306/emissionRecord/${emissionRecordId}'\n                    .replace('${' + 'emissionRecordId' + '}', String(emissionRecordId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'emissionRecordId' is not null or undefined\n        if (emissionRecordId === null || emissionRecordId === undefined) {\n            throw new Error('Required parameter emissionRecordId was null or undefined when calling getEmissionRecord.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EmissionRecordResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieve a list of emission records\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getEmissionRecordsWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<EmissionRecordResponse>>> {\n        const path = this.basePath + '/api/v202306/emissionRecord';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<EmissionRecordResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { EmissionSourceCreate } from '../model/emissionSourceCreate';\nimport { EmissionSourceEdit } from '../model/emissionSourceEdit';\nimport { EmissionSourceFactorCategoryBulkUpdate } from '../model/emissionSourceFactorCategoryBulkUpdate';\nimport { EmissionSourceMultiFactorCreate } from '../model/emissionSourceMultiFactorCreate';\nimport { EmissionSourceMultiFactorEdit } from '../model/emissionSourceMultiFactorEdit';\nimport { EmissionSourceMultiFactorResponse } from '../model/emissionSourceMultiFactorResponse';\nimport { EmissionSourceResponse } from '../model/emissionSourceResponse';\nimport { MeterLink } from '../model/meterLink';\nimport { MeterLinkRequest } from '../model/meterLinkRequest';\nimport { OkObjectResult } from '../model/okObjectResult';\nimport { UDFFieldChild } from '../model/uDFFieldChild';\nimport { UDFValue } from '../model/uDFValue';\nimport { UpdateResult } from '../model/updateResult';\nimport { UpdateSkippedResult } from '../model/updateSkippedResult';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class EmissionSourceService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Creates an emissions source\n     * \n     * @param body Data representing the emission source being created\n     */\n    public createEmissionSource(body?: EmissionSourceCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EmissionSourceResponse> {\n        return this.createEmissionSourceWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EmissionSourceResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Creates an emission source\n     * \n     * @param body Data representing the emission source being created\n     */\n    public createEmissionSourceWithMultiFactors(body?: EmissionSourceMultiFactorCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EmissionSourceMultiFactorResponse> {\n        return this.createEmissionSourceWithMultiFactorsWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EmissionSourceMultiFactorResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes an emissions source\n     * \n     * @param emissionSourceId The identifier for the emission source being deleted\n     * @param deleteRecords Should this cascade to delete any records associated with this emissions source\n     */\n    public deleteEmissionSource(emissionSourceId: number, deleteRecords?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteEmissionSourceWithHttpInfo(emissionSourceId, deleteRecords, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Download file for a emissions source custom field\n     * \n     * @param emissionSourceId The id of the emissions source\n     * @param udfId The id of the custom field\n     */\n    public downloadEmissionSourceCustomFields(emissionSourceId: number, udfId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.downloadEmissionSourceCustomFieldsWithHttpInfo(emissionSourceId, udfId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits an emissions source\n     * \n     * @param emissionSourceId The identifier for the emission source being edited\n     * @param body Data representing the emission source being edited\n     */\n    public editEmissionSource(emissionSourceId: number, body?: EmissionSourceEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EmissionSourceResponse> {\n        return this.editEmissionSourceWithHttpInfo(emissionSourceId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EmissionSourceResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit the custom field values on a emissions source\n     * \n     * @param emissionSourceId The id of the emissions source\n     * @param body The list of udf values being edited\n     */\n    public editEmissionSourceCustomFields(emissionSourceId: number, body?: Array<UDFValue>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<UDFFieldChild>> {\n        return this.editEmissionSourceCustomFieldsWithHttpInfo(emissionSourceId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<UDFFieldChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Assigns the specified scope category and factor pairings to the specified emission sources. If one or more of the factors provided cannot be applied to the emission source, that emission source will be skipped.\n     * \n     * @param body \n     */\n    public editEmissionSourceFactorCategoriesBulk(body?: EmissionSourceFactorCategoryBulkUpdate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateSkippedResult> {\n        return this.editEmissionSourceFactorCategoriesBulkWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateSkippedResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits an emission source\n     * \n     * @param emissionSourceId The identifier for the emission source being edited\n     * @param body Data representing the emission source being edited\n     */\n    public editEmissionSourceWithMultiFactors(emissionSourceId: number, body?: EmissionSourceMultiFactorEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EmissionSourceMultiFactorResponse> {\n        return this.editEmissionSourceWithMultiFactorsWithHttpInfo(emissionSourceId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EmissionSourceMultiFactorResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit meter data in an Emission Source\n     * \n     * @param emissionSourceId The Emission Source identifier\n     * @param body Meter data to assign to the Emission Source\n     */\n    public editMeterLink(emissionSourceId: number, body?: MeterLinkRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<MeterLink> {\n        return this.editMeterLinkWithHttpInfo(emissionSourceId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<MeterLink>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves the emissions source by ID\n     * \n     * @param emissionSourceId The identifier for the emission source being retrieved\n     */\n    public getEmissionSource(emissionSourceId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EmissionSourceResponse> {\n        return this.getEmissionSourceWithHttpInfo(emissionSourceId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EmissionSourceResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get custom field values for an emissions source\n     * \n     * @param emissionSourceId The id of the emissions source\n     */\n    public getEmissionSourceCustomFields(emissionSourceId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<UDFFieldChild>> {\n        return this.getEmissionSourceCustomFieldsWithHttpInfo(emissionSourceId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<UDFFieldChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves an emission source by ID\n     * \n     * @param emissionSourceId The identifier for the emission source being retrieved\n     */\n    public getEmissionSourceWithMultiFactors(emissionSourceId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EmissionSourceMultiFactorResponse> {\n        return this.getEmissionSourceWithMultiFactorsWithHttpInfo(emissionSourceId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EmissionSourceMultiFactorResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all the emissions sources\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getEmissionSources(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<EmissionSourceResponse>> {\n        return this.getEmissionSourcesWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<EmissionSourceResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all emission sources\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getEmissionSourcesWithMultiFactors(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<EmissionSourceMultiFactorResponse>> {\n        return this.getEmissionSourcesWithMultiFactorsWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<EmissionSourceMultiFactorResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * \n     * \n     * @param parentCollectionId \n     * @param body \n     */\n    public moveEmissionSources(parentCollectionId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.moveEmissionSourcesWithHttpInfo(parentCollectionId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Resets the scope category and factor pairings of the specified emission sources to their commodity default. If no default exists for an emission source&#39;s commodity, that emission source will be skipped.\n     * \n     * @param body \n     */\n    public resetEmissionSourceFactorCategoriesBulk(body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateSkippedResult> {\n        return this.resetEmissionSourceFactorCategoriesBulkWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateSkippedResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Creates an emissions source\n     * \n     * @param body Data representing the emission source being created\n     */\n    public createEmissionSourceWithHttpInfo(body?: EmissionSourceCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EmissionSourceResponse>> {\n        const path = this.basePath + '/api/v202306/emissionSource';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EmissionSourceResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Creates an emission source\n     * \n     * @param body Data representing the emission source being created\n     */\n    public createEmissionSourceWithMultiFactorsWithHttpInfo(body?: EmissionSourceMultiFactorCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EmissionSourceMultiFactorResponse>> {\n        const path = this.basePath + '/api/v202411/emissionSource';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EmissionSourceMultiFactorResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Deletes an emissions source\n     * \n     * @param emissionSourceId The identifier for the emission source being deleted\n     * @param deleteRecords Should this cascade to delete any records associated with this emissions source\n     */\n    public deleteEmissionSourceWithHttpInfo(emissionSourceId: number, deleteRecords?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202306/emissionSource/${emissionSourceId}'\n                    .replace('${' + 'emissionSourceId' + '}', String(emissionSourceId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'emissionSourceId' is not null or undefined\n        if (emissionSourceId === null || emissionSourceId === undefined) {\n            throw new Error('Required parameter emissionSourceId was null or undefined when calling deleteEmissionSource.');\n        }\n        if (deleteRecords !== undefined) {\n            queryParameters = queryParameters.set('deleteRecords', <any>deleteRecords);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Download file for a emissions source custom field\n     * \n     * @param emissionSourceId The id of the emissions source\n     * @param udfId The id of the custom field\n     */\n    public downloadEmissionSourceCustomFieldsWithHttpInfo(emissionSourceId: number, udfId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202501/emissionSource/${emissionSourceId}/udf/${udfId}/download'\n                    .replace('${' + 'emissionSourceId' + '}', String(emissionSourceId))\n                    .replace('${' + 'udfId' + '}', String(udfId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'emissionSourceId' is not null or undefined\n        if (emissionSourceId === null || emissionSourceId === undefined) {\n            throw new Error('Required parameter emissionSourceId was null or undefined when calling downloadEmissionSourceCustomFields.');\n        }\n        // verify required parameter 'udfId' is not null or undefined\n        if (udfId === null || udfId === undefined) {\n            throw new Error('Required parameter udfId was null or undefined when calling downloadEmissionSourceCustomFields.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Edits an emissions source\n     * \n     * @param emissionSourceId The identifier for the emission source being edited\n     * @param body Data representing the emission source being edited\n     */\n    public editEmissionSourceWithHttpInfo(emissionSourceId: number, body?: EmissionSourceEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EmissionSourceResponse>> {\n        const path = this.basePath + '/api/v202306/emissionSource/${emissionSourceId}'\n                    .replace('${' + 'emissionSourceId' + '}', String(emissionSourceId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'emissionSourceId' is not null or undefined\n        if (emissionSourceId === null || emissionSourceId === undefined) {\n            throw new Error('Required parameter emissionSourceId was null or undefined when calling editEmissionSource.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EmissionSourceResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edit the custom field values on a emissions source\n     * \n     * @param emissionSourceId The id of the emissions source\n     * @param body The list of udf values being edited\n     */\n    public editEmissionSourceCustomFieldsWithHttpInfo(emissionSourceId: number, body?: Array<UDFValue>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<UDFFieldChild>>> {\n        const path = this.basePath + '/api/v202501/emissionSource/${emissionSourceId}/udf'\n                    .replace('${' + 'emissionSourceId' + '}', String(emissionSourceId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'emissionSourceId' is not null or undefined\n        if (emissionSourceId === null || emissionSourceId === undefined) {\n            throw new Error('Required parameter emissionSourceId was null or undefined when calling editEmissionSourceCustomFields.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<UDFFieldChild>>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Assigns the specified scope category and factor pairings to the specified emission sources. If one or more of the factors provided cannot be applied to the emission source, that emission source will be skipped.\n     * \n     * @param body \n     */\n    public editEmissionSourceFactorCategoriesBulkWithHttpInfo(body?: EmissionSourceFactorCategoryBulkUpdate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateSkippedResult>> {\n        const path = this.basePath + '/api/v202501/emissionSource/factorCategory/update';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateSkippedResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edits an emission source\n     * \n     * @param emissionSourceId The identifier for the emission source being edited\n     * @param body Data representing the emission source being edited\n     */\n    public editEmissionSourceWithMultiFactorsWithHttpInfo(emissionSourceId: number, body?: EmissionSourceMultiFactorEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EmissionSourceMultiFactorResponse>> {\n        const path = this.basePath + '/api/v202411/emissionSource/${emissionSourceId}'\n                    .replace('${' + 'emissionSourceId' + '}', String(emissionSourceId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'emissionSourceId' is not null or undefined\n        if (emissionSourceId === null || emissionSourceId === undefined) {\n            throw new Error('Required parameter emissionSourceId was null or undefined when calling editEmissionSourceWithMultiFactors.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EmissionSourceMultiFactorResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edit meter data in an Emission Source\n     * \n     * @param emissionSourceId The Emission Source identifier\n     * @param body Meter data to assign to the Emission Source\n     */\n    public editMeterLinkWithHttpInfo(emissionSourceId: number, body?: MeterLinkRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<MeterLink>> {\n        const path = this.basePath + '/api/v202307/emissionSource/${emissionSourceId}/meter'\n                    .replace('${' + 'emissionSourceId' + '}', String(emissionSourceId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'emissionSourceId' is not null or undefined\n        if (emissionSourceId === null || emissionSourceId === undefined) {\n            throw new Error('Required parameter emissionSourceId was null or undefined when calling editMeterLink.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<MeterLink>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Retrieves the emissions source by ID\n     * \n     * @param emissionSourceId The identifier for the emission source being retrieved\n     */\n    public getEmissionSourceWithHttpInfo(emissionSourceId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EmissionSourceResponse>> {\n        const path = this.basePath + '/api/v202306/emissionSource/${emissionSourceId}'\n                    .replace('${' + 'emissionSourceId' + '}', String(emissionSourceId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'emissionSourceId' is not null or undefined\n        if (emissionSourceId === null || emissionSourceId === undefined) {\n            throw new Error('Required parameter emissionSourceId was null or undefined when calling getEmissionSource.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EmissionSourceResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get custom field values for an emissions source\n     * \n     * @param emissionSourceId The id of the emissions source\n     */\n    public getEmissionSourceCustomFieldsWithHttpInfo(emissionSourceId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<UDFFieldChild>>> {\n        const path = this.basePath + '/api/v202501/emissionSource/${emissionSourceId}/udf'\n                    .replace('${' + 'emissionSourceId' + '}', String(emissionSourceId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'emissionSourceId' is not null or undefined\n        if (emissionSourceId === null || emissionSourceId === undefined) {\n            throw new Error('Required parameter emissionSourceId was null or undefined when calling getEmissionSourceCustomFields.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<UDFFieldChild>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves an emission source by ID\n     * \n     * @param emissionSourceId The identifier for the emission source being retrieved\n     */\n    public getEmissionSourceWithMultiFactorsWithHttpInfo(emissionSourceId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EmissionSourceMultiFactorResponse>> {\n        const path = this.basePath + '/api/v202411/emissionSource/${emissionSourceId}'\n                    .replace('${' + 'emissionSourceId' + '}', String(emissionSourceId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'emissionSourceId' is not null or undefined\n        if (emissionSourceId === null || emissionSourceId === undefined) {\n            throw new Error('Required parameter emissionSourceId was null or undefined when calling getEmissionSourceWithMultiFactors.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EmissionSourceMultiFactorResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all the emissions sources\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getEmissionSourcesWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<EmissionSourceResponse>>> {\n        const path = this.basePath + '/api/v202306/emissionSource';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<EmissionSourceResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all emission sources\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getEmissionSourcesWithMultiFactorsWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<EmissionSourceMultiFactorResponse>>> {\n        const path = this.basePath + '/api/v202411/emissionSource';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<EmissionSourceMultiFactorResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * \n     * \n     * @param parentCollectionId \n     * @param body \n     */\n    public moveEmissionSourcesWithHttpInfo(parentCollectionId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v202309/parentCollection/${parentCollectionId}/emissionSource'\n                    .replace('${' + 'parentCollectionId' + '}', String(parentCollectionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'parentCollectionId' is not null or undefined\n        if (parentCollectionId === null || parentCollectionId === undefined) {\n            throw new Error('Required parameter parentCollectionId was null or undefined when calling moveEmissionSources.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Resets the scope category and factor pairings of the specified emission sources to their commodity default. If no default exists for an emission source&#39;s commodity, that emission source will be skipped.\n     * \n     * @param body \n     */\n    public resetEmissionSourceFactorCategoriesBulkWithHttpInfo(body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateSkippedResult>> {\n        const path = this.basePath + '/api/v202501/emissionSource/factorCategory/reset';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateSkippedResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { VemChatCreate } from '../model/vemChatCreate';\nimport { VemChatEdit } from '../model/vemChatEdit';\nimport { VemChatMessageCreate } from '../model/vemChatMessageCreate';\nimport { VemChatMessageResponse } from '../model/vemChatMessageResponse';\nimport { VemChatResponse } from '../model/vemChatResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class EnergyManagerService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Create a VEM chat for the user making the request.   It requires the &#39;VirtualEnergyManager&#39; feature flag to be enabled for the user.\n     * \n     * @param body \n     */\n    public createChat(body?: VemChatCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<VemChatResponse> {\n        return this.createChatWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<VemChatResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Creates a new message in the specified chat and streams the response to the client.  Since chat history is persisted, it manages response ID internally. It requires the &#39;VirtualEnergyManager&#39; feature flag to be enabled for the user.\n     * This method processes the user&#39;s message asynchronously and streams the response             directly to the client. The response is sent as plain text with no caching, and the connection is kept alive             during the streaming process.\n     * @param chatId The identifier of the chat where the message will be created.\n     * @param body An object containing the details of the message to be created, including its content.\n     */\n    public createMessage(chatId: number, body?: VemChatMessageCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.createMessageWithHttpInfo(chatId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete a VEM chat. Chat needs to belong the user making the request. It requires the &#39;VirtualEnergyManager&#39; feature flag to be enabled for the user.\n     * \n     * @param chatId \n     */\n    public deleteChat(chatId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteChatWithHttpInfo(chatId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit a VEM chat. Chat needs to belong the user making the request. It requires the &#39;VirtualEnergyManager&#39; feature flag to be enabled for the user.\n     * \n     * @param chatId \n     * @param body \n     */\n    public editChat(chatId: number, body?: VemChatEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<VemChatResponse> {\n        return this.editChatWithHttpInfo(chatId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<VemChatResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all VEM chat messages for a given chat ID. Chat needs to be active (not deleted) and belong to the user making the request.  It requires the &#39;VirtualEnergyManager&#39; feature flag to be enabled for the user.\n     * \n     * @param chatId Chat id identifier\n     */\n    public getUserChatMessages(chatId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<VemChatMessageResponse>> {\n        return this.getUserChatMessagesWithHttpInfo(chatId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<VemChatMessageResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all VEM chats created by the user making the request. It filters out inactive/deleted chats.  It requires the &#39;VirtualEnergyManager&#39; feature flag to be enabled for the user.\n     * \n     */\n    public getUserChats(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<VemChatResponse>> {\n        return this.getUserChatsWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<VemChatResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Create a VEM chat for the user making the request.   It requires the &#39;VirtualEnergyManager&#39; feature flag to be enabled for the user.\n     * \n     * @param body \n     */\n    public createChatWithHttpInfo(body?: VemChatCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<VemChatResponse>> {\n        const path = this.basePath + '/api/v202510/energymanager/chat';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<VemChatResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Creates a new message in the specified chat and streams the response to the client.  Since chat history is persisted, it manages response ID internally. It requires the &#39;VirtualEnergyManager&#39; feature flag to be enabled for the user.\n     * This method processes the user&#39;s message asynchronously and streams the response             directly to the client. The response is sent as plain text with no caching, and the connection is kept alive             during the streaming process.\n     * @param chatId The identifier of the chat where the message will be created.\n     * @param body An object containing the details of the message to be created, including its content.\n     */\n    public createMessageWithHttpInfo(chatId: number, body?: VemChatMessageCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202510/energymanager/chat/${chatId}/message'\n                    .replace('${' + 'chatId' + '}', String(chatId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'chatId' is not null or undefined\n        if (chatId === null || chatId === undefined) {\n            throw new Error('Required parameter chatId was null or undefined when calling createMessage.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Delete a VEM chat. Chat needs to belong the user making the request. It requires the &#39;VirtualEnergyManager&#39; feature flag to be enabled for the user.\n     * \n     * @param chatId \n     */\n    public deleteChatWithHttpInfo(chatId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202510/energymanager/chat/${chatId}'\n                    .replace('${' + 'chatId' + '}', String(chatId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'chatId' is not null or undefined\n        if (chatId === null || chatId === undefined) {\n            throw new Error('Required parameter chatId was null or undefined when calling deleteChat.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Edit a VEM chat. Chat needs to belong the user making the request. It requires the &#39;VirtualEnergyManager&#39; feature flag to be enabled for the user.\n     * \n     * @param chatId \n     * @param body \n     */\n    public editChatWithHttpInfo(chatId: number, body?: VemChatEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<VemChatResponse>> {\n        const path = this.basePath + '/api/v202510/energymanager/chat/${chatId}'\n                    .replace('${' + 'chatId' + '}', String(chatId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'chatId' is not null or undefined\n        if (chatId === null || chatId === undefined) {\n            throw new Error('Required parameter chatId was null or undefined when calling editChat.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<VemChatResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all VEM chat messages for a given chat ID. Chat needs to be active (not deleted) and belong to the user making the request.  It requires the &#39;VirtualEnergyManager&#39; feature flag to be enabled for the user.\n     * \n     * @param chatId Chat id identifier\n     */\n    public getUserChatMessagesWithHttpInfo(chatId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<VemChatMessageResponse>>> {\n        const path = this.basePath + '/api/v202510/energymanager/chat/${chatId}/message'\n                    .replace('${' + 'chatId' + '}', String(chatId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'chatId' is not null or undefined\n        if (chatId === null || chatId === undefined) {\n            throw new Error('Required parameter chatId was null or undefined when calling getUserChatMessages.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<VemChatMessageResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all VEM chats created by the user making the request. It filters out inactive/deleted chats.  It requires the &#39;VirtualEnergyManager&#39; feature flag to be enabled for the user.\n     * \n     */\n    public getUserChatsWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<VemChatResponse>>> {\n        const path = this.basePath + '/api/v202510/energymanager/chat';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<VemChatResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { EnergyProjectCreate } from '../model/energyProjectCreate';\nimport { EnergyProjectEdit } from '../model/energyProjectEdit';\nimport { EnergyProjectResponse } from '../model/energyProjectResponse';\nimport { EnergyProjectType } from '../model/energyProjectType';\nimport { EnergyProjectTypeCreate } from '../model/energyProjectTypeCreate';\nimport { ProjectManagerResponse } from '../model/projectManagerResponse';\nimport { UDFFieldChild } from '../model/uDFFieldChild';\nimport { UDFValue } from '../model/uDFValue';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class EnergyProjectService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Creates an Energy Project\n     * \n     * @param body Data representing the Energy project being created\n     */\n    public createEnergyProject(body?: EnergyProjectCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EnergyProjectResponse> {\n        return this.createEnergyProjectWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EnergyProjectResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Create a energy project type\n     * \n     * @param body \n     */\n    public createEnergyProjectType(body?: EnergyProjectTypeCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EnergyProjectType> {\n        return this.createEnergyProjectTypeWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EnergyProjectType>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes an Energy Project\n     * \n     * @param projectId The identifier for the energy project being deleted\n     */\n    public deleteEnergyProject(projectId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteEnergyProjectWithHttpInfo(projectId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Download file for a energy project custom field\n     * \n     * @param energyProjectId The id of the energy project\n     * @param udfId The id of the custom field\n     */\n    public downloadEnergyProjectCustomFields(energyProjectId: number, udfId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.downloadEnergyProjectCustomFieldsWithHttpInfo(energyProjectId, udfId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits an Energy Project\n     * \n     * @param projectId The identifier for the energy project being edited\n     * @param body \n     */\n    public editEnergyProject(projectId: number, body?: EnergyProjectEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EnergyProjectResponse> {\n        return this.editEnergyProjectWithHttpInfo(projectId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EnergyProjectResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit the custom field values on a energy project\n     * \n     * @param energyProjectId The id of the energy project\n     * @param body The list of udf values being edited\n     */\n    public editEnergyProjectCustomFields(energyProjectId: number, body?: Array<UDFValue>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<UDFFieldChild>> {\n        return this.editEnergyProjectCustomFieldsWithHttpInfo(energyProjectId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<UDFFieldChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get an energy project\n     * \n     * @param projectId The identifier for the energy project to retrieve\n     */\n    public getEnergyProject(projectId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EnergyProjectResponse> {\n        return this.getEnergyProjectWithHttpInfo(projectId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EnergyProjectResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get custom field values for a energy project\n     * \n     * @param energyProjectId The id of the energy project\n     */\n    public getEnergyProjectCustomFields(energyProjectId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<UDFFieldChild>> {\n        return this.getEnergyProjectCustomFieldsWithHttpInfo(energyProjectId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<UDFFieldChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get the energy project managers\n     * \n     * @param query \n     */\n    public getEnergyProjectManager(query?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<ProjectManagerResponse>> {\n        return this.getEnergyProjectManagerWithHttpInfo(query, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<ProjectManagerResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get all the energy project types\n     * \n     */\n    public getEnergyProjectTypes(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<EnergyProjectType>> {\n        return this.getEnergyProjectTypesWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<EnergyProjectType>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Creates an Energy Project\n     * \n     * @param body Data representing the Energy project being created\n     */\n    public createEnergyProjectWithHttpInfo(body?: EnergyProjectCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EnergyProjectResponse>> {\n        const path = this.basePath + '/api/v3/energyproject';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EnergyProjectResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Create a energy project type\n     * \n     * @param body \n     */\n    public createEnergyProjectTypeWithHttpInfo(body?: EnergyProjectTypeCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EnergyProjectType>> {\n        const path = this.basePath + '/api/v3/energyproject/energyprojecttype';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EnergyProjectType>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Deletes an Energy Project\n     * \n     * @param projectId The identifier for the energy project being deleted\n     */\n    public deleteEnergyProjectWithHttpInfo(projectId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/energyproject/${projectId}'\n                    .replace('${' + 'projectId' + '}', String(projectId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'projectId' is not null or undefined\n        if (projectId === null || projectId === undefined) {\n            throw new Error('Required parameter projectId was null or undefined when calling deleteEnergyProject.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Download file for a energy project custom field\n     * \n     * @param energyProjectId The id of the energy project\n     * @param udfId The id of the custom field\n     */\n    public downloadEnergyProjectCustomFieldsWithHttpInfo(energyProjectId: number, udfId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202501/energyproject/${energyProjectId}/udf/${udfId}/download'\n                    .replace('${' + 'energyProjectId' + '}', String(energyProjectId))\n                    .replace('${' + 'udfId' + '}', String(udfId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'energyProjectId' is not null or undefined\n        if (energyProjectId === null || energyProjectId === undefined) {\n            throw new Error('Required parameter energyProjectId was null or undefined when calling downloadEnergyProjectCustomFields.');\n        }\n        // verify required parameter 'udfId' is not null or undefined\n        if (udfId === null || udfId === undefined) {\n            throw new Error('Required parameter udfId was null or undefined when calling downloadEnergyProjectCustomFields.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Edits an Energy Project\n     * \n     * @param projectId The identifier for the energy project being edited\n     * @param body \n     */\n    public editEnergyProjectWithHttpInfo(projectId: number, body?: EnergyProjectEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EnergyProjectResponse>> {\n        const path = this.basePath + '/api/v3/energyproject/${projectId}'\n                    .replace('${' + 'projectId' + '}', String(projectId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'projectId' is not null or undefined\n        if (projectId === null || projectId === undefined) {\n            throw new Error('Required parameter projectId was null or undefined when calling editEnergyProject.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EnergyProjectResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edit the custom field values on a energy project\n     * \n     * @param energyProjectId The id of the energy project\n     * @param body The list of udf values being edited\n     */\n    public editEnergyProjectCustomFieldsWithHttpInfo(energyProjectId: number, body?: Array<UDFValue>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<UDFFieldChild>>> {\n        const path = this.basePath + '/api/v202501/energyproject/${energyProjectId}/udf'\n                    .replace('${' + 'energyProjectId' + '}', String(energyProjectId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'energyProjectId' is not null or undefined\n        if (energyProjectId === null || energyProjectId === undefined) {\n            throw new Error('Required parameter energyProjectId was null or undefined when calling editEnergyProjectCustomFields.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<UDFFieldChild>>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Get an energy project\n     * \n     * @param projectId The identifier for the energy project to retrieve\n     */\n    public getEnergyProjectWithHttpInfo(projectId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EnergyProjectResponse>> {\n        const path = this.basePath + '/api/v3/energyproject/${projectId}'\n                    .replace('${' + 'projectId' + '}', String(projectId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'projectId' is not null or undefined\n        if (projectId === null || projectId === undefined) {\n            throw new Error('Required parameter projectId was null or undefined when calling getEnergyProject.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EnergyProjectResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get custom field values for a energy project\n     * \n     * @param energyProjectId The id of the energy project\n     */\n    public getEnergyProjectCustomFieldsWithHttpInfo(energyProjectId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<UDFFieldChild>>> {\n        const path = this.basePath + '/api/v202501/energyproject/${energyProjectId}/udf'\n                    .replace('${' + 'energyProjectId' + '}', String(energyProjectId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'energyProjectId' is not null or undefined\n        if (energyProjectId === null || energyProjectId === undefined) {\n            throw new Error('Required parameter energyProjectId was null or undefined when calling getEnergyProjectCustomFields.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<UDFFieldChild>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get the energy project managers\n     * \n     * @param query \n     */\n    public getEnergyProjectManagerWithHttpInfo(query?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<ProjectManagerResponse>>> {\n        const path = this.basePath + '/api/v3/energyproject/projectmanager';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (query !== undefined) {\n            queryParameters = queryParameters.set('query', <any>query);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<ProjectManagerResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get all the energy project types\n     * \n     */\n    public getEnergyProjectTypesWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<EnergyProjectType>>> {\n        const path = this.basePath + '/api/v3/energyproject/energyprojecttype';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<EnergyProjectType>>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { AccountConnectionStatusResponse } from '../model/accountConnectionStatusResponse';\nimport { EnergyStarCommodityMeterTypeMapping } from '../model/energyStarCommodityMeterTypeMapping';\nimport { EnergyStarPlaceMetricsRequest } from '../model/energyStarPlaceMetricsRequest';\nimport { EnergyStarPlaceSubmissionStatusResponse } from '../model/energyStarPlaceSubmissionStatusResponse';\nimport { EnergyStarPmMeter } from '../model/energyStarPmMeter';\nimport { EnergyStarPmProperty } from '../model/energyStarPmProperty';\nimport { EnergyStarSettingsRequest } from '../model/energyStarSettingsRequest';\nimport { EnergyStarSettingsResponse } from '../model/energyStarSettingsResponse';\nimport { EnergyStarSubmissionRequest } from '../model/energyStarSubmissionRequest';\nimport { EnergyStarTaskResponse } from '../model/energyStarTaskResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class EnergyStarService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Accept any pending property and meter share requests from ENERGY STAR Portfolio Manager\n     * \n     */\n    public acceptPropertyAndMeterSharingRequests(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EnergyStarSettingsResponse> {\n        return this.acceptPropertyAndMeterSharingRequestsWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EnergyStarSettingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Automatically submit billing data to ENERGY STAR By default calendarized bill data for a 13-month period (excludes current and last month) in the \\&quot;Ready\\&quot; state for all buildings setup to automatically submit to ENERGY STAR will be submitted If 13 months is not preferred, set up the owner&#39;s systemdata key called \\&quot;EnergyStarAutoSubmitNumOfMonths\\&quot; with an integer value representing the preferred number of months  For example - Today is 25th Nov 2021 - all calendarized data for Sep 2020 through Sep 2021 will be submitted The buildings submitted will be within the user&#39;s topmost place No data prior to the earliest period to submit set up in ENERGY STAR settings will ever be submitted\n     * \n     */\n    public autoSubmitToEnergyStar(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EnergyStarTaskResponse> {\n        return this.autoSubmitToEnergyStarWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EnergyStarTaskResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Initiate (create) a submission of place data to ENERGY STAR\n     * \n     * @param body \n     */\n    public createEnergyStarSubmission(body?: EnergyStarSubmissionRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EnergyStarTaskResponse> {\n        return this.createEnergyStarSubmissionWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EnergyStarTaskResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit settings for ENERGY STAR submissions\n     * \n     * @param body ENERGY STAR settings\n     */\n    public editEnergyStarSettings(body?: EnergyStarSettingsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EnergyStarSettingsResponse> {\n        return this.editEnergyStarSettingsWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EnergyStarSettingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a list of all commodities and, if configured, their mappings in ENERGY STAR\n     * \n     */\n    public getEnergyStarCommodityMappings(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<EnergyStarCommodityMeterTypeMapping>> {\n        return this.getEnergyStarCommodityMappingsWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<EnergyStarCommodityMeterTypeMapping>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get settings for ENERGY STAR submissions\n     * \n     */\n    public getEnergyStarSettings(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EnergyStarSettingsResponse> {\n        return this.getEnergyStarSettingsWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EnergyStarSettingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get the submission status for places by submission period.  Places that do not match the filter criteria will not be returned.  NOTE: Deleting/voiding bills that have already been submitted will not cause submission status to change from \\&quot;submitted\\&quot;.\n     * Returned submission status:     Submitted  - submission has been made for this place and submission period and no bills have been created or modified since the last submission     No Data    - no submission has been made for this place and submission period and current submission period has no billing data     Incomplete - no submission has been made for this place and submission period and current billing data is incomplete (some meters may not have data or some days in submission period may not have data)     Ready      - no submission has been made for this place and submission period and current billing data is complete (every meter has data for every day of this period), or submission has been made but billing data has been added or modified since the last submission\n     * @param submissionBeginPeriod The beginning submission period to select\n     * @param submissionEndPeriod The ending submission period to select; set equal to beginning submission period get one period\n     * @param filter API filter string containing conditions\n     */\n    public getEnergyStarSubmissionStatusList(submissionBeginPeriod: number, submissionEndPeriod: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<EnergyStarPlaceSubmissionStatusResponse>> {\n        return this.getEnergyStarSubmissionStatusListWithHttpInfo(submissionBeginPeriod, submissionEndPeriod, filter, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<EnergyStarPlaceSubmissionStatusResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get an ENERGY STAR task with its details\n     * \n     * @param energyStarTaskId \n     */\n    public getEnergyStarTask(energyStarTaskId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EnergyStarTaskResponse> {\n        return this.getEnergyStarTaskWithHttpInfo(energyStarTaskId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EnergyStarTaskResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a list of ENERGY STAR tasks with their details\n     * \n     * @param filter Filters to apply\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getEnergyStarTasks(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<EnergyStarTaskResponse>> {\n        return this.getEnergyStarTasksWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<EnergyStarTaskResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get the connection status for a Portfolio Manager account and database\n     * \n     * @param pmUserName User name used to log in to Portfolio Manager\n     */\n    public getPMConnectionStatus(pmUserName?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<AccountConnectionStatusResponse> {\n        return this.getPMConnectionStatusWithHttpInfo(pmUserName, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<AccountConnectionStatusResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get list of Portfolio Manager properties\n     * \n     * @param includeOnlyUnlinked Include only unlinked properties\n     * @param verbose true by default.               When set to false the API will perform faster but will only retrieve PmPropertyId and PmPropertyName from Portfolio Manager.             PmPropertyUseType, PmFloorArea, PmFloorAreaUnits will be null.\n     */\n    public getPortfolioManagerProperties(includeOnlyUnlinked?: boolean, verbose?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<EnergyStarPmProperty>> {\n        return this.getPortfolioManagerPropertiesWithHttpInfo(includeOnlyUnlinked, verbose, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<EnergyStarPmProperty>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a Portfolio Manager property\n     * \n     * @param pmPropertyId Portfolio Manager property identifier\n     * @param verbose true by default.               When set to false the API will perform faster but will only retrieve PmPropertyId and PmPropertyName from Portfolio Manager.             PmPropertyUseType, PmFloorArea, PmFloorAreaUnits will be null.\n     */\n    public getPortfolioManagerProperty(pmPropertyId: number, verbose?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EnergyStarPmProperty> {\n        return this.getPortfolioManagerPropertyWithHttpInfo(pmPropertyId, verbose, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EnergyStarPmProperty>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get list of Portfolio Manager meters for a property\n     * \n     * @param pmPropertyId Portfolio Manager property identifier\n     * @param includeOnlyUnlinked Include only unlinked meters\n     * @param verbose true by default.               When set to false the API will perform faster but will only retrieve PmMeterId and PmMeterName from Portfolio Manager.             PmCommodityCode and PmUnitCode will be null.\n     */\n    public getPortfolioManagerPropertyMeters(pmPropertyId: number, includeOnlyUnlinked?: boolean, verbose?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<EnergyStarPmMeter>> {\n        return this.getPortfolioManagerPropertyMetersWithHttpInfo(pmPropertyId, includeOnlyUnlinked, verbose, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<EnergyStarPmMeter>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Unlink owner from portfolio manager account\n     * \n     * @param deleteData If true, delete EnergyStar metrics and score. False by default\n     */\n    public unlinkOwnerFromPortfolioManager(deleteData?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.unlinkOwnerFromPortfolioManagerWithHttpInfo(deleteData, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Update ENERGY STAR metrics for the places matching the request criteria.\n     * \n     * @param body Periods and list of place identifiers for which to update metrics\n     */\n    public updateEnergyStarMetrics(body?: EnergyStarPlaceMetricsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EnergyStarTaskResponse> {\n        return this.updateEnergyStarMetricsWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EnergyStarTaskResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Accept any pending property and meter share requests from ENERGY STAR Portfolio Manager\n     * \n     */\n    public acceptPropertyAndMeterSharingRequestsWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EnergyStarSettingsResponse>> {\n        const path = this.basePath + '/api/v202110/energyStar/acceptShares';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EnergyStarSettingsResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Automatically submit billing data to ENERGY STAR By default calendarized bill data for a 13-month period (excludes current and last month) in the \\&quot;Ready\\&quot; state for all buildings setup to automatically submit to ENERGY STAR will be submitted If 13 months is not preferred, set up the owner&#39;s systemdata key called \\&quot;EnergyStarAutoSubmitNumOfMonths\\&quot; with an integer value representing the preferred number of months  For example - Today is 25th Nov 2021 - all calendarized data for Sep 2020 through Sep 2021 will be submitted The buildings submitted will be within the user&#39;s topmost place No data prior to the earliest period to submit set up in ENERGY STAR settings will ever be submitted\n     * \n     */\n    public autoSubmitToEnergyStarWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EnergyStarTaskResponse>> {\n        const path = this.basePath + '/api/v202110/energyStar/autosubmit';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EnergyStarTaskResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Initiate (create) a submission of place data to ENERGY STAR\n     * \n     * @param body \n     */\n    public createEnergyStarSubmissionWithHttpInfo(body?: EnergyStarSubmissionRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EnergyStarTaskResponse>> {\n        const path = this.basePath + '/api/v3/energyStar/submit';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EnergyStarTaskResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Edit settings for ENERGY STAR submissions\n     * \n     * @param body ENERGY STAR settings\n     */\n    public editEnergyStarSettingsWithHttpInfo(body?: EnergyStarSettingsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EnergyStarSettingsResponse>> {\n        const path = this.basePath + '/api/v202110/energyStar/setting';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EnergyStarSettingsResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Get a list of all commodities and, if configured, their mappings in ENERGY STAR\n     * \n     */\n    public getEnergyStarCommodityMappingsWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<EnergyStarCommodityMeterTypeMapping>>> {\n        const path = this.basePath + '/api/v202109/energyStar/commodity';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<EnergyStarCommodityMeterTypeMapping>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get settings for ENERGY STAR submissions\n     * \n     */\n    public getEnergyStarSettingsWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EnergyStarSettingsResponse>> {\n        const path = this.basePath + '/api/v202110/energyStar/setting';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EnergyStarSettingsResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get the submission status for places by submission period.  Places that do not match the filter criteria will not be returned.  NOTE: Deleting/voiding bills that have already been submitted will not cause submission status to change from \\&quot;submitted\\&quot;.\n     * Returned submission status:     Submitted  - submission has been made for this place and submission period and no bills have been created or modified since the last submission     No Data    - no submission has been made for this place and submission period and current submission period has no billing data     Incomplete - no submission has been made for this place and submission period and current billing data is incomplete (some meters may not have data or some days in submission period may not have data)     Ready      - no submission has been made for this place and submission period and current billing data is complete (every meter has data for every day of this period), or submission has been made but billing data has been added or modified since the last submission\n     * @param submissionBeginPeriod The beginning submission period to select\n     * @param submissionEndPeriod The ending submission period to select; set equal to beginning submission period get one period\n     * @param filter API filter string containing conditions\n     */\n    public getEnergyStarSubmissionStatusListWithHttpInfo(submissionBeginPeriod: number, submissionEndPeriod: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<EnergyStarPlaceSubmissionStatusResponse>>> {\n        const path = this.basePath + '/api/v3/energyStar/submissionStatus';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'submissionBeginPeriod' is not null or undefined\n        if (submissionBeginPeriod === null || submissionBeginPeriod === undefined) {\n            throw new Error('Required parameter submissionBeginPeriod was null or undefined when calling getEnergyStarSubmissionStatusList.');\n        }\n        // verify required parameter 'submissionEndPeriod' is not null or undefined\n        if (submissionEndPeriod === null || submissionEndPeriod === undefined) {\n            throw new Error('Required parameter submissionEndPeriod was null or undefined when calling getEnergyStarSubmissionStatusList.');\n        }\n        if (submissionBeginPeriod !== undefined) {\n            queryParameters = queryParameters.set('submissionBeginPeriod', <any>submissionBeginPeriod);\n        }\n\n        if (submissionEndPeriod !== undefined) {\n            queryParameters = queryParameters.set('submissionEndPeriod', <any>submissionEndPeriod);\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<EnergyStarPlaceSubmissionStatusResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get an ENERGY STAR task with its details\n     * \n     * @param energyStarTaskId \n     */\n    public getEnergyStarTaskWithHttpInfo(energyStarTaskId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EnergyStarTaskResponse>> {\n        const path = this.basePath + '/api/v3/energyStar/task/${energyStarTaskId}'\n                    .replace('${' + 'energyStarTaskId' + '}', String(energyStarTaskId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'energyStarTaskId' is not null or undefined\n        if (energyStarTaskId === null || energyStarTaskId === undefined) {\n            throw new Error('Required parameter energyStarTaskId was null or undefined when calling getEnergyStarTask.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EnergyStarTaskResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a list of ENERGY STAR tasks with their details\n     * \n     * @param filter Filters to apply\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getEnergyStarTasksWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<EnergyStarTaskResponse>>> {\n        const path = this.basePath + '/api/v3/energyStar/task';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<EnergyStarTaskResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get the connection status for a Portfolio Manager account and database\n     * \n     * @param pmUserName User name used to log in to Portfolio Manager\n     */\n    public getPMConnectionStatusWithHttpInfo(pmUserName?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<AccountConnectionStatusResponse>> {\n        const path = this.basePath + '/api/v202110/energyStar/connectionstatus';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (pmUserName !== undefined) {\n            queryParameters = queryParameters.set('pmUserName', <any>pmUserName);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<AccountConnectionStatusResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get list of Portfolio Manager properties\n     * \n     * @param includeOnlyUnlinked Include only unlinked properties\n     * @param verbose true by default.               When set to false the API will perform faster but will only retrieve PmPropertyId and PmPropertyName from Portfolio Manager.             PmPropertyUseType, PmFloorArea, PmFloorAreaUnits will be null.\n     */\n    public getPortfolioManagerPropertiesWithHttpInfo(includeOnlyUnlinked?: boolean, verbose?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<EnergyStarPmProperty>>> {\n        const path = this.basePath + '/api/v3/energyStar/pmProperty';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (includeOnlyUnlinked !== undefined) {\n            queryParameters = queryParameters.set('includeOnlyUnlinked', <any>includeOnlyUnlinked);\n        }\n\n        if (verbose !== undefined) {\n            queryParameters = queryParameters.set('verbose', <any>verbose);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<EnergyStarPmProperty>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a Portfolio Manager property\n     * \n     * @param pmPropertyId Portfolio Manager property identifier\n     * @param verbose true by default.               When set to false the API will perform faster but will only retrieve PmPropertyId and PmPropertyName from Portfolio Manager.             PmPropertyUseType, PmFloorArea, PmFloorAreaUnits will be null.\n     */\n    public getPortfolioManagerPropertyWithHttpInfo(pmPropertyId: number, verbose?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EnergyStarPmProperty>> {\n        const path = this.basePath + '/api/v3/energyStar/pmProperty/${pmPropertyId}'\n                    .replace('${' + 'pmPropertyId' + '}', String(pmPropertyId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'pmPropertyId' is not null or undefined\n        if (pmPropertyId === null || pmPropertyId === undefined) {\n            throw new Error('Required parameter pmPropertyId was null or undefined when calling getPortfolioManagerProperty.');\n        }\n        if (verbose !== undefined) {\n            queryParameters = queryParameters.set('verbose', <any>verbose);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EnergyStarPmProperty>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get list of Portfolio Manager meters for a property\n     * \n     * @param pmPropertyId Portfolio Manager property identifier\n     * @param includeOnlyUnlinked Include only unlinked meters\n     * @param verbose true by default.               When set to false the API will perform faster but will only retrieve PmMeterId and PmMeterName from Portfolio Manager.             PmCommodityCode and PmUnitCode will be null.\n     */\n    public getPortfolioManagerPropertyMetersWithHttpInfo(pmPropertyId: number, includeOnlyUnlinked?: boolean, verbose?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<EnergyStarPmMeter>>> {\n        const path = this.basePath + '/api/v3/energyStar/pmProperty/${pmPropertyId}/pmMeter'\n                    .replace('${' + 'pmPropertyId' + '}', String(pmPropertyId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'pmPropertyId' is not null or undefined\n        if (pmPropertyId === null || pmPropertyId === undefined) {\n            throw new Error('Required parameter pmPropertyId was null or undefined when calling getPortfolioManagerPropertyMeters.');\n        }\n        if (includeOnlyUnlinked !== undefined) {\n            queryParameters = queryParameters.set('includeOnlyUnlinked', <any>includeOnlyUnlinked);\n        }\n\n        if (verbose !== undefined) {\n            queryParameters = queryParameters.set('verbose', <any>verbose);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<EnergyStarPmMeter>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Unlink owner from portfolio manager account\n     * \n     * @param deleteData If true, delete EnergyStar metrics and score. False by default\n     */\n    public unlinkOwnerFromPortfolioManagerWithHttpInfo(deleteData?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202110/energyStar/unlink';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (deleteData !== undefined) {\n            queryParameters = queryParameters.set('deleteData', <any>deleteData);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Update ENERGY STAR metrics for the places matching the request criteria.\n     * \n     * @param body Periods and list of place identifiers for which to update metrics\n     */\n    public updateEnergyStarMetricsWithHttpInfo(body?: EnergyStarPlaceMetricsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EnergyStarTaskResponse>> {\n        const path = this.basePath + '/api/v3/energyStar/metrics';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EnergyStarTaskResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { Environment } from '../model/environment';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class EnvironmentService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * \n     * \n     */\n    public environment(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Environment> {\n        return this.environmentWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Environment>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * \n     * \n     */\n    public environmentWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Environment>> {\n        const path = this.basePath + '/api/v3/environment';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Environment>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { EsaChannelCreate } from '../model/esaChannelCreate';\nimport { EsaChannelEdit } from '../model/esaChannelEdit';\nimport { EsaChannelResponse } from '../model/esaChannelResponse';\nimport { EsaChannelVersionCreateWithBeginDate } from '../model/esaChannelVersionCreateWithBeginDate';\nimport { EsaChannelVersionEdit } from '../model/esaChannelVersionEdit';\nimport { EsaChannelVersionResponse } from '../model/esaChannelVersionResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class EsaChannelService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Creates an ESA channel\n     * \n     * @param body Data representing the ESA channel being created\n     */\n    public createEsaChannel(body?: EsaChannelCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EsaChannelResponse> {\n        return this.createEsaChannelWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EsaChannelResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Creates an ESA channel version for a specified ESA channel\n     * \n     * @param esaChannelId The ESA channel identifier\n     * @param body Data representing the ESA channel version being created\n     */\n    public createEsaChannelVersion(esaChannelId: number, body?: EsaChannelVersionCreateWithBeginDate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EsaChannelVersionResponse> {\n        return this.createEsaChannelVersionWithHttpInfo(esaChannelId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EsaChannelVersionResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes an ESA channel\n     * \n     * @param esaChannelId The ESA channel identifier\n     */\n    public deleteEsaChannel(esaChannelId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteEsaChannelWithHttpInfo(esaChannelId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits an ESA channel\n     * \n     * @param esaChannelId The ESA channel identifier\n     * @param body Data representing the ESA channel being edited\n     */\n    public editEsaChannel(esaChannelId: number, body?: EsaChannelEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EsaChannelResponse> {\n        return this.editEsaChannelWithHttpInfo(esaChannelId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EsaChannelResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits an ESA channel version for a specified ESA channel\n     * \n     * @param esaChannelId The ESA channel identifier\n     * @param versionId The ESA channel version identifier\n     * @param body Data representing the ESA channel version being edited\n     */\n    public editEsaChannelVersion(esaChannelId: number, versionId: number, body?: EsaChannelVersionEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EsaChannelVersionResponse> {\n        return this.editEsaChannelVersionWithHttpInfo(esaChannelId, versionId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EsaChannelVersionResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves an ESA channel\n     * \n     * @param esaChannelId The ESA channel identifier\n     */\n    public getEsaChannel(esaChannelId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EsaChannelResponse> {\n        return this.getEsaChannelWithHttpInfo(esaChannelId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EsaChannelResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves an ESA channel version for a specified ESA channel\n     * \n     * @param esaChannelId The ESA channel identifier\n     * @param versionId The ESA channel version identifier\n     */\n    public getEsaChannelVersion(esaChannelId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EsaChannelVersionResponse> {\n        return this.getEsaChannelVersionWithHttpInfo(esaChannelId, versionId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EsaChannelVersionResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all ESA channel version for a specified ESA channel\n     * \n     * @param esaChannelId \n     */\n    public getEsaChannelVersions(esaChannelId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<EsaChannelVersionResponse>> {\n        return this.getEsaChannelVersionsWithHttpInfo(esaChannelId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<EsaChannelVersionResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves a filtered list of ESA Channels.\n     * \n     * @param filter \n     * @param orderBy \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getEsaChannels(filter?: string, orderBy?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<EsaChannelResponse>> {\n        return this.getEsaChannelsWithHttpInfo(filter, orderBy, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<EsaChannelResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Creates an ESA channel\n     * \n     * @param body Data representing the ESA channel being created\n     */\n    public createEsaChannelWithHttpInfo(body?: EsaChannelCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EsaChannelResponse>> {\n        const path = this.basePath + '/api/v202406/esachannel';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EsaChannelResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Creates an ESA channel version for a specified ESA channel\n     * \n     * @param esaChannelId The ESA channel identifier\n     * @param body Data representing the ESA channel version being created\n     */\n    public createEsaChannelVersionWithHttpInfo(esaChannelId: number, body?: EsaChannelVersionCreateWithBeginDate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EsaChannelVersionResponse>> {\n        const path = this.basePath + '/api/v202406/esachannel/${esaChannelId}/version'\n                    .replace('${' + 'esaChannelId' + '}', String(esaChannelId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'esaChannelId' is not null or undefined\n        if (esaChannelId === null || esaChannelId === undefined) {\n            throw new Error('Required parameter esaChannelId was null or undefined when calling createEsaChannelVersion.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EsaChannelVersionResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Deletes an ESA channel\n     * \n     * @param esaChannelId The ESA channel identifier\n     */\n    public deleteEsaChannelWithHttpInfo(esaChannelId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202406/esachannel/${esaChannelId}'\n                    .replace('${' + 'esaChannelId' + '}', String(esaChannelId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'esaChannelId' is not null or undefined\n        if (esaChannelId === null || esaChannelId === undefined) {\n            throw new Error('Required parameter esaChannelId was null or undefined when calling deleteEsaChannel.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Edits an ESA channel\n     * \n     * @param esaChannelId The ESA channel identifier\n     * @param body Data representing the ESA channel being edited\n     */\n    public editEsaChannelWithHttpInfo(esaChannelId: number, body?: EsaChannelEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EsaChannelResponse>> {\n        const path = this.basePath + '/api/v202406/esachannel/${esaChannelId}'\n                    .replace('${' + 'esaChannelId' + '}', String(esaChannelId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'esaChannelId' is not null or undefined\n        if (esaChannelId === null || esaChannelId === undefined) {\n            throw new Error('Required parameter esaChannelId was null or undefined when calling editEsaChannel.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EsaChannelResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edits an ESA channel version for a specified ESA channel\n     * \n     * @param esaChannelId The ESA channel identifier\n     * @param versionId The ESA channel version identifier\n     * @param body Data representing the ESA channel version being edited\n     */\n    public editEsaChannelVersionWithHttpInfo(esaChannelId: number, versionId: number, body?: EsaChannelVersionEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EsaChannelVersionResponse>> {\n        const path = this.basePath + '/api/v202406/esachannel/${esaChannelId}/version/${versionId}'\n                    .replace('${' + 'esaChannelId' + '}', String(esaChannelId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'esaChannelId' is not null or undefined\n        if (esaChannelId === null || esaChannelId === undefined) {\n            throw new Error('Required parameter esaChannelId was null or undefined when calling editEsaChannelVersion.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling editEsaChannelVersion.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EsaChannelVersionResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Retrieves an ESA channel\n     * \n     * @param esaChannelId The ESA channel identifier\n     */\n    public getEsaChannelWithHttpInfo(esaChannelId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EsaChannelResponse>> {\n        const path = this.basePath + '/api/v202406/esachannel/${esaChannelId}'\n                    .replace('${' + 'esaChannelId' + '}', String(esaChannelId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'esaChannelId' is not null or undefined\n        if (esaChannelId === null || esaChannelId === undefined) {\n            throw new Error('Required parameter esaChannelId was null or undefined when calling getEsaChannel.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EsaChannelResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves an ESA channel version for a specified ESA channel\n     * \n     * @param esaChannelId The ESA channel identifier\n     * @param versionId The ESA channel version identifier\n     */\n    public getEsaChannelVersionWithHttpInfo(esaChannelId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EsaChannelVersionResponse>> {\n        const path = this.basePath + '/api/v202406/esachannel/${esaChannelId}/version/${versionId}'\n                    .replace('${' + 'esaChannelId' + '}', String(esaChannelId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'esaChannelId' is not null or undefined\n        if (esaChannelId === null || esaChannelId === undefined) {\n            throw new Error('Required parameter esaChannelId was null or undefined when calling getEsaChannelVersion.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling getEsaChannelVersion.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EsaChannelVersionResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all ESA channel version for a specified ESA channel\n     * \n     * @param esaChannelId \n     */\n    public getEsaChannelVersionsWithHttpInfo(esaChannelId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<EsaChannelVersionResponse>>> {\n        const path = this.basePath + '/api/v202406/esachannel/${esaChannelId}/version'\n                    .replace('${' + 'esaChannelId' + '}', String(esaChannelId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'esaChannelId' is not null or undefined\n        if (esaChannelId === null || esaChannelId === undefined) {\n            throw new Error('Required parameter esaChannelId was null or undefined when calling getEsaChannelVersions.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<EsaChannelVersionResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves a filtered list of ESA Channels.\n     * \n     * @param filter \n     * @param orderBy \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getEsaChannelsWithHttpInfo(filter?: string, orderBy?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<EsaChannelResponse>>> {\n        const path = this.basePath + '/api/v202406/esachannel';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (orderBy !== undefined) {\n            queryParameters = queryParameters.set('orderBy', <any>orderBy);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<EsaChannelResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { EditEsaPlaceSizesRequest } from '../model/editEsaPlaceSizesRequest';\nimport { EsaPlaceCreate } from '../model/esaPlaceCreate';\nimport { EsaPlaceDataRollupRequest } from '../model/esaPlaceDataRollupRequest';\nimport { EsaPlaceEdit } from '../model/esaPlaceEdit';\nimport { EsaPlaceResponse } from '../model/esaPlaceResponse';\nimport { PlaceSizeChild } from '../model/placeSizeChild';\nimport { PlaceSizeResponse } from '../model/placeSizeResponse';\nimport { ScheduleResponse } from '../model/scheduleResponse';\nimport { UpdateResult } from '../model/updateResult';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class EsaPlaceService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Set and Reset the data Rollup from esa place\n     * \n     * @param body The list of placeIds and If the Rollup is true or false\n     */\n    public bulkEditDataRollup(body?: EsaPlaceDataRollupRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.bulkEditDataRollupWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Creates an ESA place\n     * \n     * @param body Data representing the ESA place being created\n     */\n    public createEsaPlace(body?: EsaPlaceCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EsaPlaceResponse> {\n        return this.createEsaPlaceWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EsaPlaceResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes an ESA place\n     * \n     * @param placeId The identifier for the ESA place being deleted\n     */\n    public deleteEsaPlace(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteEsaPlaceWithHttpInfo(placeId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits an ESA place\n     * \n     * @param placeId The identifier for the ESA place being edited\n     * @param body Data representing the ESA place being edited\n     */\n    public editEsaPlace(placeId: number, body?: EsaPlaceEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EsaPlaceResponse> {\n        return this.editEsaPlaceWithHttpInfo(placeId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EsaPlaceResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Manages the schedules of a place\n     * \n     * @param placeId The place identifier\n     * @param body A list of schedule identifiers to assign\n     */\n    public editEsaPlaceSchedules(placeId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<ScheduleResponse>> {\n        return this.editEsaPlaceSchedulesWithHttpInfo(placeId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<ScheduleResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Manages the version history for a single ESA place.  This endpoint handles Creating, Editing, and Deleting place sizes for ESA places in bulk.\n     * \n     * @param placeId \n     * @param body \n     */\n    public editEsaPlaceSizeHistory(placeId: number, body?: EditEsaPlaceSizesRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PlaceSizeChild>> {\n        return this.editEsaPlaceSizeHistoryWithHttpInfo(placeId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PlaceSizeChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves an ESA place by place ID\n     * \n     * @param placeId The identifier for the ESA place being retrieved\n     */\n    public getEsaPlace(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EsaPlaceResponse> {\n        return this.getEsaPlaceWithHttpInfo(placeId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EsaPlaceResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves the current sizes of all of an ESA place&#39;s children.  If a place has no children, nothing is returned.\n     * \n     * @param placeId \n     */\n    public getEsaPlaceChildrenSizes(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PlaceSizeResponse>> {\n        return this.getEsaPlaceChildrenSizesWithHttpInfo(placeId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PlaceSizeResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Gets the schedules of a place\n     * \n     * @param placeId The place identifier\n     */\n    public getEsaPlaceSchedules(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<ScheduleResponse>> {\n        return this.getEsaPlaceSchedulesWithHttpInfo(placeId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<ScheduleResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves the entire size history of an ESA place by ID\n     * \n     * @param placeId \n     */\n    public getEsaPlaceSizeHistory(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PlaceSizeChild>> {\n        return this.getEsaPlaceSizeHistoryWithHttpInfo(placeId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PlaceSizeChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all ESA places\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getEsaPlaces(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<EsaPlaceResponse>> {\n        return this.getEsaPlacesWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<EsaPlaceResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Move list of places to be under a parent place\n     * \n     * @param parentPlaceId The identifier for the new parent place\n     * @param body List of place identifiers to move\n     */\n    public moveEsaPlace(parentPlaceId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.moveEsaPlaceWithHttpInfo(parentPlaceId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Set and Reset the data Rollup from esa place\n     * \n     * @param body The list of placeIds and If the Rollup is true or false\n     */\n    public bulkEditDataRollupWithHttpInfo(body?: EsaPlaceDataRollupRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202406/esaplace/dataRollup';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Creates an ESA place\n     * \n     * @param body Data representing the ESA place being created\n     */\n    public createEsaPlaceWithHttpInfo(body?: EsaPlaceCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EsaPlaceResponse>> {\n        const path = this.basePath + '/api/v202406/esaplace';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EsaPlaceResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Deletes an ESA place\n     * \n     * @param placeId The identifier for the ESA place being deleted\n     */\n    public deleteEsaPlaceWithHttpInfo(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202406/esaplace/${placeId}'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling deleteEsaPlace.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Edits an ESA place\n     * \n     * @param placeId The identifier for the ESA place being edited\n     * @param body Data representing the ESA place being edited\n     */\n    public editEsaPlaceWithHttpInfo(placeId: number, body?: EsaPlaceEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EsaPlaceResponse>> {\n        const path = this.basePath + '/api/v202406/esaplace/${placeId}'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling editEsaPlace.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EsaPlaceResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Manages the schedules of a place\n     * \n     * @param placeId The place identifier\n     * @param body A list of schedule identifiers to assign\n     */\n    public editEsaPlaceSchedulesWithHttpInfo(placeId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<ScheduleResponse>>> {\n        const path = this.basePath + '/api/v202407/esaplace/${placeId}/schedule'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling editEsaPlaceSchedules.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<ScheduleResponse>>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Manages the version history for a single ESA place.  This endpoint handles Creating, Editing, and Deleting place sizes for ESA places in bulk.\n     * \n     * @param placeId \n     * @param body \n     */\n    public editEsaPlaceSizeHistoryWithHttpInfo(placeId: number, body?: EditEsaPlaceSizesRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PlaceSizeChild>>> {\n        const path = this.basePath + '/api/v202406/esaplace/${placeId}/placeSize'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling editEsaPlaceSizeHistory.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PlaceSizeChild>>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Retrieves an ESA place by place ID\n     * \n     * @param placeId The identifier for the ESA place being retrieved\n     */\n    public getEsaPlaceWithHttpInfo(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EsaPlaceResponse>> {\n        const path = this.basePath + '/api/v202406/esaplace/${placeId}'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getEsaPlace.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EsaPlaceResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves the current sizes of all of an ESA place&#39;s children.  If a place has no children, nothing is returned.\n     * \n     * @param placeId \n     */\n    public getEsaPlaceChildrenSizesWithHttpInfo(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PlaceSizeResponse>>> {\n        const path = this.basePath + '/api/v202406/esaplace/${placeId}/placeSize/child'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getEsaPlaceChildrenSizes.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PlaceSizeResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Gets the schedules of a place\n     * \n     * @param placeId The place identifier\n     */\n    public getEsaPlaceSchedulesWithHttpInfo(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<ScheduleResponse>>> {\n        const path = this.basePath + '/api/v202407/esaplace/${placeId}/schedule'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getEsaPlaceSchedules.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<ScheduleResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves the entire size history of an ESA place by ID\n     * \n     * @param placeId \n     */\n    public getEsaPlaceSizeHistoryWithHttpInfo(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PlaceSizeChild>>> {\n        const path = this.basePath + '/api/v202406/esaplace/${placeId}/placeSize/history'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getEsaPlaceSizeHistory.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PlaceSizeChild>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all ESA places\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getEsaPlacesWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<EsaPlaceResponse>>> {\n        const path = this.basePath + '/api/v202406/esaplace';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<EsaPlaceResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Move list of places to be under a parent place\n     * \n     * @param parentPlaceId The identifier for the new parent place\n     * @param body List of place identifiers to move\n     */\n    public moveEsaPlaceWithHttpInfo(parentPlaceId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v202406/esaplace/parentPlace/${parentPlaceId}/place'\n                    .replace('${' + 'parentPlaceId' + '}', String(parentPlaceId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'parentPlaceId' is not null or undefined\n        if (parentPlaceId === null || parentPlaceId === undefined) {\n            throw new Error('Required parameter parentPlaceId was null or undefined when calling moveEsaPlace.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { EsaDeleteReadingResponse } from '../model/esaDeleteReadingResponse';\nimport { EsaDeleteReadingSummarizedResponse } from '../model/esaDeleteReadingSummarizedResponse';\nimport { EsaReadingCreate } from '../model/esaReadingCreate';\nimport { EsaReadingCreateResponse } from '../model/esaReadingCreateResponse';\nimport { EsaReadingDelete } from '../model/esaReadingDelete';\nimport { EsaReadingResponse } from '../model/esaReadingResponse';\nimport { EsaReadingSummarizedDelete } from '../model/esaReadingSummarizedDelete';\nimport { EsaReadingSummarizedResponse } from '../model/esaReadingSummarizedResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class EsaReadingService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Create new readings. Existing readings at the same time for a given channel will be overwritten.\n     * \n     * @param body Readings to be imported\n     */\n    public createEsaReadings(body?: Array<EsaReadingCreate>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EsaReadingCreateResponse> {\n        return this.createEsaReadingsWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EsaReadingCreateResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes existing channel readings. Each set of meter readings to be deleted is on one channel and covers a time range signified by a begin and end date and time. The time range includes all readings greater than the begin time and less than or equal to the end date and time. To delete only one reading, set the begin and end date and time to the same value.\n     * \n     * @param body \n     */\n    public deleteEsaReadings(body?: Array<EsaReadingDelete>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EsaDeleteReadingResponse> {\n        return this.deleteEsaReadingsWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EsaDeleteReadingResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes existing summarized readings. Each set of meter readings to be deleted is on one channel and covers a time range signified by a begin and end date and time. The time range includes all readings greater than the begin time and less than or equal to the end date and time. To delete only one reading, set the begin and end date and time to the same value. If the summarized reading is system-generated, the endpoint will return an error indicating that it cannot be deleted.\n     * \n     * @param body \n     */\n    public deleteEsaSummarizedReadings(body?: Array<EsaReadingSummarizedDelete>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EsaDeleteReadingSummarizedResponse> {\n        return this.deleteEsaSummarizedReadingsWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EsaDeleteReadingSummarizedResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all raw and processed ESA readings\n     * \n     * @param filter \n     * @param orderBy \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getEsaReadings(filter?: string, orderBy?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<EsaReadingResponse>> {\n        return this.getEsaReadingsWithHttpInfo(filter, orderBy, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<EsaReadingResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all summarized ESA readings\n     * \n     * @param filter \n     * @param orderBy \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getEsaSummarizedReadings(filter?: string, orderBy?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<EsaReadingSummarizedResponse>> {\n        return this.getEsaSummarizedReadingsWithHttpInfo(filter, orderBy, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<EsaReadingSummarizedResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all summarized ESA readings and exports them as a CSV file. File contents can be filtered and ordered.\n     * \n     * @param filter \n     * @param orderBy \n     */\n    public getEsaSummarizedReadingsAsCSV(filter?: string, orderBy?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<string> {\n        return this.getEsaSummarizedReadingsAsCSVWithHttpInfo(filter, orderBy, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<string>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Creates and Edits summarized readings for a datapoint and channel\n     * \n     * @param body \n     */\n    public upsertEsaSummarizedReading(body?: Array<EsaReadingCreate>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EsaReadingCreateResponse> {\n        return this.upsertEsaSummarizedReadingWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EsaReadingCreateResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Create new readings. Existing readings at the same time for a given channel will be overwritten.\n     * \n     * @param body Readings to be imported\n     */\n    public createEsaReadingsWithHttpInfo(body?: Array<EsaReadingCreate>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EsaReadingCreateResponse>> {\n        const path = this.basePath + '/api/v202407/esaReading';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EsaReadingCreateResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Deletes existing channel readings. Each set of meter readings to be deleted is on one channel and covers a time range signified by a begin and end date and time. The time range includes all readings greater than the begin time and less than or equal to the end date and time. To delete only one reading, set the begin and end date and time to the same value.\n     * \n     * @param body \n     */\n    public deleteEsaReadingsWithHttpInfo(body?: Array<EsaReadingDelete>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EsaDeleteReadingResponse>> {\n        const path = this.basePath + '/api/v202407/esaReading/delete';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EsaDeleteReadingResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Deletes existing summarized readings. Each set of meter readings to be deleted is on one channel and covers a time range signified by a begin and end date and time. The time range includes all readings greater than the begin time and less than or equal to the end date and time. To delete only one reading, set the begin and end date and time to the same value. If the summarized reading is system-generated, the endpoint will return an error indicating that it cannot be deleted.\n     * \n     * @param body \n     */\n    public deleteEsaSummarizedReadingsWithHttpInfo(body?: Array<EsaReadingSummarizedDelete>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EsaDeleteReadingSummarizedResponse>> {\n        const path = this.basePath + '/api/v202410/esaReading/summarized/delete';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EsaDeleteReadingSummarizedResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all raw and processed ESA readings\n     * \n     * @param filter \n     * @param orderBy \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getEsaReadingsWithHttpInfo(filter?: string, orderBy?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<EsaReadingResponse>>> {\n        const path = this.basePath + '/api/v202407/esaReading';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (orderBy !== undefined) {\n            queryParameters = queryParameters.set('orderBy', <any>orderBy);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<EsaReadingResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all summarized ESA readings\n     * \n     * @param filter \n     * @param orderBy \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getEsaSummarizedReadingsWithHttpInfo(filter?: string, orderBy?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<EsaReadingSummarizedResponse>>> {\n        const path = this.basePath + '/api/v202410/esaReading/summarized';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (orderBy !== undefined) {\n            queryParameters = queryParameters.set('orderBy', <any>orderBy);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<EsaReadingSummarizedResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all summarized ESA readings and exports them as a CSV file. File contents can be filtered and ordered.\n     * \n     * @param filter \n     * @param orderBy \n     */\n    public getEsaSummarizedReadingsAsCSVWithHttpInfo(filter?: string, orderBy?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<string>> {\n        const path = this.basePath + '/api/v202410/esaReading/summarized/csv';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (orderBy !== undefined) {\n            queryParameters = queryParameters.set('orderBy', <any>orderBy);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<string>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Creates and Edits summarized readings for a datapoint and channel\n     * \n     * @param body \n     */\n    public upsertEsaSummarizedReadingWithHttpInfo(body?: Array<EsaReadingCreate>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EsaReadingCreateResponse>> {\n        const path = this.basePath + '/api/v202410/esaReading/summarized';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EsaReadingCreateResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { BillActionHistoricalExport } from '../model/billActionHistoricalExport';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class ExportService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * \n     * \n     * @param exportFileName \n     * @param body \n     */\n    public exportHistoricalBills(exportFileName?: string, body?: BillActionHistoricalExport, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<string> {\n        return this.exportHistoricalBillsWithHttpInfo(exportFileName, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<string>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * \n     * \n     * @param exportFileName \n     * @param body \n     */\n    public exportHistoricalBillsWithHttpInfo(exportFileName?: string, body?: BillActionHistoricalExport, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<string>> {\n        const path = this.basePath + '/api/v3/generatebillimport';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (exportFileName !== undefined) {\n            queryParameters = queryParameters.set('exportFileName', <any>exportFileName);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<string>(RequestMethod.Post, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { FileDataTypeResponse } from '../model/fileDataTypeResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class FileStoreService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Get a list of file data types, their supported extensions, and max size\n     * \n     */\n    public getFileDataTypes(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<FileDataTypeResponse>> {\n        return this.getFileDataTypesWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<FileDataTypeResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Upload a file\n     * | File Data Type | File Data Type Id | Supported File Types                                                                                                                                                                                                                                                                             | Maximum Size | |----------------|-------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------| | Image          | 16                | jpg, png, svg, gif, heic                                                                                                                                                                                                                                                                               | 100 MB       | | PDF            | 17                | pdf                                                                                                                                                                                                                                                                                              | 100 MB       | | Document       | 18                | MS Word (doc, dot, wbk, docx, docm, dotx, dotm, docb) Excel (xls, xlt, xlm, xlsx, xlsm, xltx, xltm, xlsb, xlw) PowerPoint (ppt, pot, pps, pptx, pptm, potx, potm, ppsx, ppsm, sldx, sldm) OpenOffice (odt, ods, odp) OneNote (one) Other (rtf, txt, csv, xml)  Zip (zip) | 100 MB       |\n     * @param fileDataTypeId The data type of the file. You can retrieve a list of supported data types by calling the GetFileDataTypes API\n     * @param fileName The name of the file\n     * @param body Binary data containing the file contents\n     */\n    public uploadFile(fileDataTypeId: number, fileName?: string, body?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<string> {\n        return this.uploadFileWithHttpInfo(fileDataTypeId, fileName, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<string>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Get a list of file data types, their supported extensions, and max size\n     * \n     */\n    public getFileDataTypesWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<FileDataTypeResponse>>> {\n        const path = this.basePath + '/api/v202105/fileStore/fileDataType';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<FileDataTypeResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Upload a file\n     * | File Data Type | File Data Type Id | Supported File Types                                                                                                                                                                                                                                                                             | Maximum Size | |----------------|-------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------| | Image          | 16                | jpg, png, svg, gif, heic                                                                                                                                                                                                                                                                               | 100 MB       | | PDF            | 17                | pdf                                                                                                                                                                                                                                                                                              | 100 MB       | | Document       | 18                | MS Word (doc, dot, wbk, docx, docm, dotx, dotm, docb) Excel (xls, xlt, xlm, xlsx, xlsm, xltx, xltm, xlsb, xlw) PowerPoint (ppt, pot, pps, pptx, pptm, potx, potm, ppsx, ppsm, sldx, sldm) OpenOffice (odt, ods, odp) OneNote (one) Other (rtf, txt, csv, xml)  Zip (zip) | 100 MB       |\n     * @param fileDataTypeId The data type of the file. You can retrieve a list of supported data types by calling the GetFileDataTypes API\n     * @param fileName The name of the file\n     * @param body Binary data containing the file contents\n     */\n    public uploadFileWithHttpInfo(fileDataTypeId: number, fileName?: string, body?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<string>> {\n        const path = this.basePath + '/api/v202105/fileStore/fileDataType/${fileDataTypeId}/upload'\n                    .replace('${' + 'fileDataTypeId' + '}', String(fileDataTypeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'fileDataTypeId' is not null or undefined\n        if (fileDataTypeId === null || fileDataTypeId === undefined) {\n            throw new Error('Required parameter fileDataTypeId was null or undefined when calling uploadFile.');\n        }\n        if (fileName !== undefined) {\n            queryParameters = queryParameters.set('fileName', <any>fileName);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/octet-stream'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<string>(RequestMethod.Post, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { FilterDataResponse } from '../model/filterDataResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class FilterService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Retrieves list of values for data filter\n     * \n     * @param dataFieldId \n     * @param search \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getFilterData(dataFieldId: number, search?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<FilterDataResponse>> {\n        return this.getFilterDataWithHttpInfo(dataFieldId, search, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<FilterDataResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Retrieves list of values for data filter\n     * \n     * @param dataFieldId \n     * @param search \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getFilterDataWithHttpInfo(dataFieldId: number, search?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<FilterDataResponse>>> {\n        const path = this.basePath + '/api/v3/filterData/${dataFieldId}'\n                    .replace('${' + 'dataFieldId' + '}', String(dataFieldId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'dataFieldId' is not null or undefined\n        if (dataFieldId === null || dataFieldId === undefined) {\n            throw new Error('Required parameter dataFieldId was null or undefined when calling getFilterData.');\n        }\n        if (search !== undefined) {\n            queryParameters = queryParameters.set('search', <any>search);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<FilterDataResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { FlagEdit } from '../model/flagEdit';\nimport { FlagIssueEdit } from '../model/flagIssueEdit';\nimport { FlagIssueListAction } from '../model/flagIssueListAction';\nimport { FlagIssueResponse } from '../model/flagIssueResponse';\nimport { FlagListAction } from '../model/flagListAction';\nimport { FlagResponse } from '../model/flagResponse';\nimport { FlagTypeChild } from '../model/flagTypeChild';\nimport { FlagTypeCreate } from '../model/flagTypeCreate';\nimport { FlagWidget } from '../model/flagWidget';\nimport { SingleBoolean } from '../model/singleBoolean';\nimport { UpdateResult } from '../model/updateResult';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class FlagService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Returns a tabular flag summary by Account for all the accounts under the given cost center\n     * \n     * @param costCenterId Parent cost center identifier\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public billFlagSummaryByAccount(costCenterId: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<FlagWidget> {\n        return this.billFlagSummaryByAccountWithHttpInfo(costCenterId, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<FlagWidget>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Returns a tabular flag summary by Meter for all the meters under the given place\n     * \n     * @param placeId Parent place identifier\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public billFlagSummaryByMeter(placeId: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<FlagWidget> {\n        return this.billFlagSummaryByMeterWithHttpInfo(placeId, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<FlagWidget>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Create a flag type\n     * \n     * @param body Contains the name of the flag type being created\n     */\n    public createFlagType(body?: FlagTypeCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<FlagTypeChild> {\n        return this.createFlagTypeWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<FlagTypeChild>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete a flag type. System flag types cannot be deleted.\n     * \n     * @param flagTypeId The identifier for the flag type being deleted\n     */\n    public deleteFlagType(flagTypeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteFlagTypeWithHttpInfo(flagTypeId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit flag data for a specified entity\n     * This API supports a wide variety of Flag-related actions. Below are summaries of expected outcomes for possible combinations of property values.    Create Flag(the entity is not yet flagged, therefore there is no \\&quot;modified\\&quot; info)  |        FlagTypeId        |       FlagStatusId       |       CostRecovery       |        Assignees         |         Comment          |    HoldFromExport    |  ReleaseExportHold   |                                                                                                                   Action                                                                                                                    | | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | -------------------- | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | null                     | null                     | null                     | null                     | **non-null**             | **true**             | **true**             | Exception, cannot set both HoldFromExport and ReleaseExportHold at once                                                                                                                                                                     | | null                     | null                     | null                     | null                     | null                     | **non-null**         | **non-null**         | Exception, must have at least one set                                                                                                                                                                                                       | | null                     | null                     | null                     | null                     | null                     | null                 | null                 | Exception, must provided a non-null value for HoldFromExport or ReleaseExportHold                                                                                                                                                           | | null                     | **not null**             | **not null**             | **not null**             | **not null**             | false                | false                | Exception, must have a type                                                                                                                                                                                                                 | | **not null**             | null                     | null                     | null                     | null                     | false                | false                | Flagged, unresolved, specified type                                                                                                                                                                                                         | | **not null**             | **not null**             | null                     | null                     | null                     | false                | false                | Flagged, unresolved(ignoring specified status), specified type                                                                                                                                                                              | | **not null**             | null                     | **not null**             | null                     | null                     | false                | false                | Flagged, unresolved, specified type, cost recovery                                                                                                                                                                                          | | **not null**             | null                     | null                     | **not null**&lt;sup&gt;1&lt;/sup&gt; | null                     | false                | false                | Flagged, unresolved, specified type &lt;sup&gt;1&lt;/sup&gt;If assignees not empty, assigned                                                                                                                                                       | | **not null**             | null                     | null                     | null                     | **not null**             | false                | false                | Flagged, unresolved, specified type, comment                                                                                                                                                                                                | | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;2&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | **true**&lt;sup&gt;1&lt;/sup&gt; | false                | &lt;sup&gt;1&lt;/sup&gt;Flagged, unresolved (ignoring specified status), specified type, cost recovery, comment, held from export &lt;sup&gt;2&lt;/sup&gt;If assignees not empty, assigned, comment                                                            | | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;2&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | false                | **true**&lt;sup&gt;3&lt;/sup&gt; | &lt;sup&gt;1&lt;/sup&gt;Flagged, unresolved (ignoring specified status), specified type, cost recovery, comment &lt;sup&gt;2&lt;/sup&gt;If assignees not empty, assigned, comment &lt;sup&gt;3&lt;/sup&gt;No action; will not release a newly flagged bill for export |  Edit Unresolved Flag (the entity is already flagged)  |        FlagTypeId        |       FlagStatusId       |       CostRecovery       |        Assignees         |         Comment          |    HoldFromExport    | ReleaseExportHold |                                                                       Action                                                                        | | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | -------------------- | ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | | null                     | null                     | null                     | null                     | **non-null**             | **true**             | **true**          | Exception, cannot set both HoldFromExport and ReleaseExportHold at once                                                                             | | null                     | null                     | null                     | null                     | null                     | **non-null**         | **non-null**      | Exception, must have at least one set                                                                                                               | | null                     | null                     | null                     | null                     | null                     | false                | false             | Exception, must provided a non-null value for HoldFromExport or ReleaseExportHold                                                                   | | **system or user type**  | null                     | null                     | null                     | null                     | false                | false             | Flag type updated                                                                                                                                   | | null                     | **resolved**             | null                     | null                     | null                     | false                | false             | Resolved                                                                                                                                            | | null                     | **resolved**             | null                     | null                     | null                     | false                | **true**          | Resolved, released for export                                                                                                                       | | null                     | null                     | **not null**             | null                     | null                     | false                | false             | Updated, cost recovery                                                                                                                              | | null                     | null                     | null                     | **not null**             | null                     | false                | false             | Assigned                                                                                                                                            | | null                     | null                     | null                     | null                     | **not null**             | false                | false             | Updated, comment                                                                                                                                    | | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;3&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;2&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | false                | false             | &lt;sup&gt;1&lt;/sup&gt;Updated, specified type, cost recovery, comment &lt;sup&gt;2&lt;/sup&gt;Assigned, comment &lt;sup&gt;3&lt;/sup&gt;Resolved, comment                   | | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;3&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;2&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | **true**&lt;sup&gt;1&lt;/sup&gt; | false             | &lt;sup&gt;1&lt;/sup&gt;Updated, specified type, cost recovery, comment, held from export &lt;sup&gt;2&lt;/sup&gt;Assigned, comment &lt;sup&gt;3&lt;/sup&gt;Resolved, comment |  Edit Resolved Flag (the entity is already flagged)  |        FlagTypeId        |        FlagStatusId        |       CostRecovery       |        Assignees         |         Comment          |    HoldFromExport    |  ReleaseExportHold   |                                                              Action                                                               | | ------------------------ | -------------------------- | ------------------------ | ------------------------ | ------------------------ | -------------------- | -------------------- | --------------------------------------------------------------------------------------------------------------------------------- | | null                     | null                       | null                     | null                     | **non-null**             | **true**             | **true**             | Exception, cannot set both HoldFromExport and ReleaseExportHold at once                                                           | | null                     | null                       | null                     | null                     | null                     | **non-null**         | **non-null**         | Exception, must have at least one set                                                                                             | | null                     | null                       | null                     | null                     | null                     | false                | false                | Exception, must provided a non-null value for HoldFromExport or ReleaseExportHold                                                 | | **system or user type**  | null                       | null                     | null                     | null                     | false                | false                | Updated, specified type                                                                                                           | | null                     | **non-null**               | null                     | null                     | null                     | false                | false                | Exception; must provide flag type (cannot change flag status of a resolved flag; instead must \\&quot;re-flag\\&quot; it)                       | | null                     | null                       | **not null**             | null                     | null                     | false                | false                | Exception; must provide flag type (cannot change flag status of a resolved flag; instead must \\&quot;re-flag\\&quot; it)                       | | null                     | null                       | null                     | **not null**             | null                     | false                | false                | Exception; must provide flag type (cannot change flag status of a resolved flag; instead must \\&quot;re-flag\\&quot; it)                       | | null                     | null                       | null                     | null                     | **not null**             | false                | false                | Exception; must provide flag type (cannot change flag status of a resolved flag; instead must \\&quot;re-flag\\&quot; it)                       | | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;3&lt;/sup&gt;   | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;2&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | false                | false                | &lt;sup&gt;1&lt;/sup&gt;Updated, specified type, cost recovery, comment &lt;sup&gt;2&lt;/sup&gt;Assigned, comment &lt;sup&gt;3&lt;/sup&gt;Resolved, comment | | **not null**&lt;sup&gt;1&lt;/sup&gt; | **unresolved**&lt;sup&gt;3&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;2&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | **true**&lt;sup&gt;1&lt;/sup&gt; | false                | &lt;sup&gt;1&lt;/sup&gt;Flagged, specified type, cost recovery, comment, no export hold action &lt;sup&gt;2&lt;/sup&gt;Assigned, comment        | | **not null**&lt;sup&gt;1&lt;/sup&gt; | **resolved**&lt;sup&gt;3&lt;/sup&gt;   | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;2&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | false                | **true**&lt;sup&gt;1&lt;/sup&gt; | &lt;sup&gt;1&lt;/sup&gt;Resolved, specified type, cost recovery, comment, no export hold action &lt;sup&gt;2&lt;/sup&gt;Assigned, comment       | | **not null**&lt;sup&gt;1&lt;/sup&gt; | **unresolved**&lt;sup&gt;3&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;2&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | **true**&lt;sup&gt;1&lt;/sup&gt; | false                | &lt;sup&gt;1&lt;/sup&gt;Flagged, specified type, cost recovery, comment, held from export &lt;sup&gt;2&lt;/sup&gt;Assigned, comment             | | **not null**&lt;sup&gt;1&lt;/sup&gt; | **resolved**&lt;sup&gt;3&lt;/sup&gt;   | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;2&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | false                | **true**&lt;sup&gt;1&lt;/sup&gt; | &lt;sup&gt;1&lt;/sup&gt;Resolved, specified type, cost recovery, comment, released from export &lt;sup&gt;2&lt;/sup&gt;Assigned, comment        |\n     * @param entityType The type of entity the flag is being request for. Supported values are: \\&quot;Bill\\&quot;\n     * @param entityId The identifier of the entity\n     * @param body The flag edit request\n     */\n    public editFlag(entityType: string, entityId: number, body?: FlagEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<FlagResponse> {\n        return this.editFlagWithHttpInfo(entityType, entityId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<FlagResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * \n     * \n     * @param entityType The type of entity the flag issues are being request for. Supported values are: \\&quot;Bill\\&quot;\n     * @param entityId The identifier of the entity\n     * @param flagResolveComment Optional comment that will be recorded in the flag event when resolving the issue\n     * @param body The flag issue edit request\n     */\n    public editFlagIssues(entityType: string, entityId: number, flagResolveComment?: string, body?: Array<FlagIssueEdit>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<FlagIssueResponse>> {\n        return this.editFlagIssuesWithHttpInfo(entityType, entityId, flagResolveComment, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<FlagIssueResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Updates flags for a given list of entities. If the entity does not currently have a flag, one will be created.\n     * \n     * @param entityType The type of entity the flag is being request for. Supported values are: \\&quot;Bill\\&quot;\n     * @param body The changes to be made to the flags\n     */\n    public flagAction(entityType: string, body?: FlagListAction, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.flagActionWithHttpInfo(entityType, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Checks a given account and it&#39;s bills for the existence of a flag For bill flags, void bills are excluded\n     * \n     * @param accountId \n     */\n    public flagInAccountHierarchy(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<SingleBoolean> {\n        return this.flagInAccountHierarchyWithHttpInfo(accountId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<SingleBoolean>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Checks a given cost center and it&#39;s child cost centers, accounts, and bills for the existence of a flag For bill flags, void bills are excluded\n     * \n     * @param costCenterId \n     */\n    public flagInCostCenterHierarchy(costCenterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<SingleBoolean> {\n        return this.flagInCostCenterHierarchyWithHttpInfo(costCenterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<SingleBoolean>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Checks a given meter and it&#39;s bills for the existence of a flag For bill flags, void bills are excluded\n     * \n     * @param meterId \n     */\n    public flagInMeterHierarchy(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<SingleBoolean> {\n        return this.flagInMeterHierarchyWithHttpInfo(meterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<SingleBoolean>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Checks a given place and it&#39;s child places, meters, and bills for the existence of a flag For bill flags, void bills are excluded\n     * \n     * @param placeId \n     */\n    public flagInPlaceHierarchy(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<SingleBoolean> {\n        return this.flagInPlaceHierarchyWithHttpInfo(placeId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<SingleBoolean>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Updates flag issues for a given list of flag issue ids\n     * \n     * @param body The changes to be made to the flag issues\n     */\n    public flagIssueAction(body?: FlagIssueListAction, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.flagIssueActionWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get flag data for a specified entity\n     * \n     * @param entityType The type of entity the flag is being request for. Supported values are: \\&quot;Bill\\&quot;\n     * @param entityId The identifier of the entity\n     */\n    public getFlag(entityType: string, entityId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<FlagResponse> {\n        return this.getFlagWithHttpInfo(entityType, entityId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<FlagResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get flag issues for a specified entity\n     * \n     * @param entityType The type of entity the flag issues are being request for. Supported values are: \\&quot;Bill\\&quot;\n     * @param entityId The identifier of the entity\n     */\n    public getFlagIssues(entityType: string, entityId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<FlagIssueResponse>> {\n        return this.getFlagIssuesWithHttpInfo(entityType, entityId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<FlagIssueResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a list of all available flag types\n     * \n     */\n    public getFlagTypes(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<FlagTypeChild>> {\n        return this.getFlagTypesWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<FlagTypeChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Returns a tabular flag summary by Account for all the accounts under the given cost center\n     * \n     * @param costCenterId Parent cost center identifier\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public billFlagSummaryByAccountWithHttpInfo(costCenterId: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<FlagWidget>> {\n        const path = this.basePath + '/api/v3/flag/costcenter/${costCenterId}/billFlagSummary'\n                    .replace('${' + 'costCenterId' + '}', String(costCenterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'costCenterId' is not null or undefined\n        if (costCenterId === null || costCenterId === undefined) {\n            throw new Error('Required parameter costCenterId was null or undefined when calling billFlagSummaryByAccount.');\n        }\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<FlagWidget>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Returns a tabular flag summary by Meter for all the meters under the given place\n     * \n     * @param placeId Parent place identifier\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public billFlagSummaryByMeterWithHttpInfo(placeId: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<FlagWidget>> {\n        const path = this.basePath + '/api/v3/flag/place/${placeId}/billFlagSummary'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling billFlagSummaryByMeter.');\n        }\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<FlagWidget>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Create a flag type\n     * \n     * @param body Contains the name of the flag type being created\n     */\n    public createFlagTypeWithHttpInfo(body?: FlagTypeCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<FlagTypeChild>> {\n        const path = this.basePath + '/api/v3/flag/flagType';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<FlagTypeChild>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Delete a flag type. System flag types cannot be deleted.\n     * \n     * @param flagTypeId The identifier for the flag type being deleted\n     */\n    public deleteFlagTypeWithHttpInfo(flagTypeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/flag/flagType/${flagTypeId}'\n                    .replace('${' + 'flagTypeId' + '}', String(flagTypeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'flagTypeId' is not null or undefined\n        if (flagTypeId === null || flagTypeId === undefined) {\n            throw new Error('Required parameter flagTypeId was null or undefined when calling deleteFlagType.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Edit flag data for a specified entity\n     * This API supports a wide variety of Flag-related actions. Below are summaries of expected outcomes for possible combinations of property values.    Create Flag(the entity is not yet flagged, therefore there is no \\&quot;modified\\&quot; info)  |        FlagTypeId        |       FlagStatusId       |       CostRecovery       |        Assignees         |         Comment          |    HoldFromExport    |  ReleaseExportHold   |                                                                                                                   Action                                                                                                                    | | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | -------------------- | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | null                     | null                     | null                     | null                     | **non-null**             | **true**             | **true**             | Exception, cannot set both HoldFromExport and ReleaseExportHold at once                                                                                                                                                                     | | null                     | null                     | null                     | null                     | null                     | **non-null**         | **non-null**         | Exception, must have at least one set                                                                                                                                                                                                       | | null                     | null                     | null                     | null                     | null                     | null                 | null                 | Exception, must provided a non-null value for HoldFromExport or ReleaseExportHold                                                                                                                                                           | | null                     | **not null**             | **not null**             | **not null**             | **not null**             | false                | false                | Exception, must have a type                                                                                                                                                                                                                 | | **not null**             | null                     | null                     | null                     | null                     | false                | false                | Flagged, unresolved, specified type                                                                                                                                                                                                         | | **not null**             | **not null**             | null                     | null                     | null                     | false                | false                | Flagged, unresolved(ignoring specified status), specified type                                                                                                                                                                              | | **not null**             | null                     | **not null**             | null                     | null                     | false                | false                | Flagged, unresolved, specified type, cost recovery                                                                                                                                                                                          | | **not null**             | null                     | null                     | **not null**&lt;sup&gt;1&lt;/sup&gt; | null                     | false                | false                | Flagged, unresolved, specified type &lt;sup&gt;1&lt;/sup&gt;If assignees not empty, assigned                                                                                                                                                       | | **not null**             | null                     | null                     | null                     | **not null**             | false                | false                | Flagged, unresolved, specified type, comment                                                                                                                                                                                                | | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;2&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | **true**&lt;sup&gt;1&lt;/sup&gt; | false                | &lt;sup&gt;1&lt;/sup&gt;Flagged, unresolved (ignoring specified status), specified type, cost recovery, comment, held from export &lt;sup&gt;2&lt;/sup&gt;If assignees not empty, assigned, comment                                                            | | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;2&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | false                | **true**&lt;sup&gt;3&lt;/sup&gt; | &lt;sup&gt;1&lt;/sup&gt;Flagged, unresolved (ignoring specified status), specified type, cost recovery, comment &lt;sup&gt;2&lt;/sup&gt;If assignees not empty, assigned, comment &lt;sup&gt;3&lt;/sup&gt;No action; will not release a newly flagged bill for export |  Edit Unresolved Flag (the entity is already flagged)  |        FlagTypeId        |       FlagStatusId       |       CostRecovery       |        Assignees         |         Comment          |    HoldFromExport    | ReleaseExportHold |                                                                       Action                                                                        | | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | -------------------- | ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | | null                     | null                     | null                     | null                     | **non-null**             | **true**             | **true**          | Exception, cannot set both HoldFromExport and ReleaseExportHold at once                                                                             | | null                     | null                     | null                     | null                     | null                     | **non-null**         | **non-null**      | Exception, must have at least one set                                                                                                               | | null                     | null                     | null                     | null                     | null                     | false                | false             | Exception, must provided a non-null value for HoldFromExport or ReleaseExportHold                                                                   | | **system or user type**  | null                     | null                     | null                     | null                     | false                | false             | Flag type updated                                                                                                                                   | | null                     | **resolved**             | null                     | null                     | null                     | false                | false             | Resolved                                                                                                                                            | | null                     | **resolved**             | null                     | null                     | null                     | false                | **true**          | Resolved, released for export                                                                                                                       | | null                     | null                     | **not null**             | null                     | null                     | false                | false             | Updated, cost recovery                                                                                                                              | | null                     | null                     | null                     | **not null**             | null                     | false                | false             | Assigned                                                                                                                                            | | null                     | null                     | null                     | null                     | **not null**             | false                | false             | Updated, comment                                                                                                                                    | | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;3&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;2&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | false                | false             | &lt;sup&gt;1&lt;/sup&gt;Updated, specified type, cost recovery, comment &lt;sup&gt;2&lt;/sup&gt;Assigned, comment &lt;sup&gt;3&lt;/sup&gt;Resolved, comment                   | | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;3&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;2&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | **true**&lt;sup&gt;1&lt;/sup&gt; | false             | &lt;sup&gt;1&lt;/sup&gt;Updated, specified type, cost recovery, comment, held from export &lt;sup&gt;2&lt;/sup&gt;Assigned, comment &lt;sup&gt;3&lt;/sup&gt;Resolved, comment |  Edit Resolved Flag (the entity is already flagged)  |        FlagTypeId        |        FlagStatusId        |       CostRecovery       |        Assignees         |         Comment          |    HoldFromExport    |  ReleaseExportHold   |                                                              Action                                                               | | ------------------------ | -------------------------- | ------------------------ | ------------------------ | ------------------------ | -------------------- | -------------------- | --------------------------------------------------------------------------------------------------------------------------------- | | null                     | null                       | null                     | null                     | **non-null**             | **true**             | **true**             | Exception, cannot set both HoldFromExport and ReleaseExportHold at once                                                           | | null                     | null                       | null                     | null                     | null                     | **non-null**         | **non-null**         | Exception, must have at least one set                                                                                             | | null                     | null                       | null                     | null                     | null                     | false                | false                | Exception, must provided a non-null value for HoldFromExport or ReleaseExportHold                                                 | | **system or user type**  | null                       | null                     | null                     | null                     | false                | false                | Updated, specified type                                                                                                           | | null                     | **non-null**               | null                     | null                     | null                     | false                | false                | Exception; must provide flag type (cannot change flag status of a resolved flag; instead must \\&quot;re-flag\\&quot; it)                       | | null                     | null                       | **not null**             | null                     | null                     | false                | false                | Exception; must provide flag type (cannot change flag status of a resolved flag; instead must \\&quot;re-flag\\&quot; it)                       | | null                     | null                       | null                     | **not null**             | null                     | false                | false                | Exception; must provide flag type (cannot change flag status of a resolved flag; instead must \\&quot;re-flag\\&quot; it)                       | | null                     | null                       | null                     | null                     | **not null**             | false                | false                | Exception; must provide flag type (cannot change flag status of a resolved flag; instead must \\&quot;re-flag\\&quot; it)                       | | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;3&lt;/sup&gt;   | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;2&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | false                | false                | &lt;sup&gt;1&lt;/sup&gt;Updated, specified type, cost recovery, comment &lt;sup&gt;2&lt;/sup&gt;Assigned, comment &lt;sup&gt;3&lt;/sup&gt;Resolved, comment | | **not null**&lt;sup&gt;1&lt;/sup&gt; | **unresolved**&lt;sup&gt;3&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;2&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | **true**&lt;sup&gt;1&lt;/sup&gt; | false                | &lt;sup&gt;1&lt;/sup&gt;Flagged, specified type, cost recovery, comment, no export hold action &lt;sup&gt;2&lt;/sup&gt;Assigned, comment        | | **not null**&lt;sup&gt;1&lt;/sup&gt; | **resolved**&lt;sup&gt;3&lt;/sup&gt;   | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;2&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | false                | **true**&lt;sup&gt;1&lt;/sup&gt; | &lt;sup&gt;1&lt;/sup&gt;Resolved, specified type, cost recovery, comment, no export hold action &lt;sup&gt;2&lt;/sup&gt;Assigned, comment       | | **not null**&lt;sup&gt;1&lt;/sup&gt; | **unresolved**&lt;sup&gt;3&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;2&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | **true**&lt;sup&gt;1&lt;/sup&gt; | false                | &lt;sup&gt;1&lt;/sup&gt;Flagged, specified type, cost recovery, comment, held from export &lt;sup&gt;2&lt;/sup&gt;Assigned, comment             | | **not null**&lt;sup&gt;1&lt;/sup&gt; | **resolved**&lt;sup&gt;3&lt;/sup&gt;   | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;2&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | false                | **true**&lt;sup&gt;1&lt;/sup&gt; | &lt;sup&gt;1&lt;/sup&gt;Resolved, specified type, cost recovery, comment, released from export &lt;sup&gt;2&lt;/sup&gt;Assigned, comment        |\n     * @param entityType The type of entity the flag is being request for. Supported values are: \\&quot;Bill\\&quot;\n     * @param entityId The identifier of the entity\n     * @param body The flag edit request\n     */\n    public editFlagWithHttpInfo(entityType: string, entityId: number, body?: FlagEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<FlagResponse>> {\n        const path = this.basePath + '/api/v3/flag/${entityType}/${entityId}'\n                    .replace('${' + 'entityType' + '}', String(entityType))\n                    .replace('${' + 'entityId' + '}', String(entityId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'entityType' is not null or undefined\n        if (entityType === null || entityType === undefined) {\n            throw new Error('Required parameter entityType was null or undefined when calling editFlag.');\n        }\n        // verify required parameter 'entityId' is not null or undefined\n        if (entityId === null || entityId === undefined) {\n            throw new Error('Required parameter entityId was null or undefined when calling editFlag.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<FlagResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * \n     * \n     * @param entityType The type of entity the flag issues are being request for. Supported values are: \\&quot;Bill\\&quot;\n     * @param entityId The identifier of the entity\n     * @param flagResolveComment Optional comment that will be recorded in the flag event when resolving the issue\n     * @param body The flag issue edit request\n     */\n    public editFlagIssuesWithHttpInfo(entityType: string, entityId: number, flagResolveComment?: string, body?: Array<FlagIssueEdit>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<FlagIssueResponse>>> {\n        const path = this.basePath + '/api/v202501/flag/flagIssue/${entityType}/${entityId}'\n                    .replace('${' + 'entityType' + '}', String(entityType))\n                    .replace('${' + 'entityId' + '}', String(entityId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'entityType' is not null or undefined\n        if (entityType === null || entityType === undefined) {\n            throw new Error('Required parameter entityType was null or undefined when calling editFlagIssues.');\n        }\n        // verify required parameter 'entityId' is not null or undefined\n        if (entityId === null || entityId === undefined) {\n            throw new Error('Required parameter entityId was null or undefined when calling editFlagIssues.');\n        }\n        if (flagResolveComment !== undefined) {\n            queryParameters = queryParameters.set('flagResolveComment', <any>flagResolveComment);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<FlagIssueResponse>>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Updates flags for a given list of entities. If the entity does not currently have a flag, one will be created.\n     * \n     * @param entityType The type of entity the flag is being request for. Supported values are: \\&quot;Bill\\&quot;\n     * @param body The changes to be made to the flags\n     */\n    public flagActionWithHttpInfo(entityType: string, body?: FlagListAction, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/flag/${entityType}/flagAction'\n                    .replace('${' + 'entityType' + '}', String(entityType));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'entityType' is not null or undefined\n        if (entityType === null || entityType === undefined) {\n            throw new Error('Required parameter entityType was null or undefined when calling flagAction.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Checks a given account and it&#39;s bills for the existence of a flag For bill flags, void bills are excluded\n     * \n     * @param accountId \n     */\n    public flagInAccountHierarchyWithHttpInfo(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<SingleBoolean>> {\n        const path = this.basePath + '/api/v3/flag/account/${accountId}/hierarchy'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling flagInAccountHierarchy.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<SingleBoolean>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Checks a given cost center and it&#39;s child cost centers, accounts, and bills for the existence of a flag For bill flags, void bills are excluded\n     * \n     * @param costCenterId \n     */\n    public flagInCostCenterHierarchyWithHttpInfo(costCenterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<SingleBoolean>> {\n        const path = this.basePath + '/api/v3/flag/costCenter/${costCenterId}/hierarchy'\n                    .replace('${' + 'costCenterId' + '}', String(costCenterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'costCenterId' is not null or undefined\n        if (costCenterId === null || costCenterId === undefined) {\n            throw new Error('Required parameter costCenterId was null or undefined when calling flagInCostCenterHierarchy.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<SingleBoolean>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Checks a given meter and it&#39;s bills for the existence of a flag For bill flags, void bills are excluded\n     * \n     * @param meterId \n     */\n    public flagInMeterHierarchyWithHttpInfo(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<SingleBoolean>> {\n        const path = this.basePath + '/api/v3/flag/meter/${meterId}/hierarchy'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling flagInMeterHierarchy.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<SingleBoolean>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Checks a given place and it&#39;s child places, meters, and bills for the existence of a flag For bill flags, void bills are excluded\n     * \n     * @param placeId \n     */\n    public flagInPlaceHierarchyWithHttpInfo(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<SingleBoolean>> {\n        const path = this.basePath + '/api/v3/flag/place/${placeId}/hierarchy'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling flagInPlaceHierarchy.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<SingleBoolean>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Updates flag issues for a given list of flag issue ids\n     * \n     * @param body The changes to be made to the flag issues\n     */\n    public flagIssueActionWithHttpInfo(body?: FlagIssueListAction, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v202501/flag/flagIssueAction';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Get flag data for a specified entity\n     * \n     * @param entityType The type of entity the flag is being request for. Supported values are: \\&quot;Bill\\&quot;\n     * @param entityId The identifier of the entity\n     */\n    public getFlagWithHttpInfo(entityType: string, entityId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<FlagResponse>> {\n        const path = this.basePath + '/api/v3/flag/${entityType}/${entityId}'\n                    .replace('${' + 'entityType' + '}', String(entityType))\n                    .replace('${' + 'entityId' + '}', String(entityId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'entityType' is not null or undefined\n        if (entityType === null || entityType === undefined) {\n            throw new Error('Required parameter entityType was null or undefined when calling getFlag.');\n        }\n        // verify required parameter 'entityId' is not null or undefined\n        if (entityId === null || entityId === undefined) {\n            throw new Error('Required parameter entityId was null or undefined when calling getFlag.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<FlagResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get flag issues for a specified entity\n     * \n     * @param entityType The type of entity the flag issues are being request for. Supported values are: \\&quot;Bill\\&quot;\n     * @param entityId The identifier of the entity\n     */\n    public getFlagIssuesWithHttpInfo(entityType: string, entityId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<FlagIssueResponse>>> {\n        const path = this.basePath + '/api/v202501/flag/flagIssue/${entityType}/${entityId}'\n                    .replace('${' + 'entityType' + '}', String(entityType))\n                    .replace('${' + 'entityId' + '}', String(entityId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'entityType' is not null or undefined\n        if (entityType === null || entityType === undefined) {\n            throw new Error('Required parameter entityType was null or undefined when calling getFlagIssues.');\n        }\n        // verify required parameter 'entityId' is not null or undefined\n        if (entityId === null || entityId === undefined) {\n            throw new Error('Required parameter entityId was null or undefined when calling getFlagIssues.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<FlagIssueResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a list of all available flag types\n     * \n     */\n    public getFlagTypesWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<FlagTypeChild>>> {\n        const path = this.basePath + '/api/v3/flag/flagType';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<FlagTypeChild>>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { FormulaValidationRequest } from '../model/formulaValidationRequest';\nimport { FormulaValidationResponse } from '../model/formulaValidationResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class FormulaService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Check that a Calculated Meter formula is valid. It is valid if the following are all true: &lt;list type&#x3D;\\&quot;bullet\\&quot;&gt;&lt;item&gt;&lt;description&gt;         It is syntactically correct     &lt;/description&gt;&lt;/item&gt;&lt;item&gt;&lt;description&gt;         It only calls allowed functions (including the custom function &#x60;channel()&#x60;\\&quot;)     &lt;/description&gt;&lt;/item&gt;&lt;item&gt;&lt;description&gt;         Each channel referenced (via &#x60;channel(channelId)&#x60;) is the Primary Value Channel         of some other datapoint (which also rules out self-references).     &lt;/description&gt;&lt;/item&gt;&lt;/list&gt;\n     * \n     * @param body Formula to validate\n     */\n    public validateCalculatedMeterFormula(body?: FormulaValidationRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<FormulaValidationResponse> {\n        return this.validateCalculatedMeterFormulaWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<FormulaValidationResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Check that a Calculated Channel formula is valid, in the context of the given datapoint. It is valid if the following are all true: &lt;list type&#x3D;\\&quot;bullet\\&quot;&gt;&lt;item&gt;&lt;description&gt;         It is syntactically correct     &lt;/description&gt;&lt;/item&gt;&lt;item&gt;&lt;description&gt;         It only calls allowed functions (including the custom function &#x60;channel()&#x60;\\&quot;)     &lt;/description&gt;&lt;/item&gt;&lt;item&gt;&lt;description&gt;         Each channel referenced (via &#x60;channel(channelId)&#x60;) belongs to this datapoint         and is a simple (not calculated) channel (which also rules out self-references).     &lt;/description&gt;&lt;/item&gt;&lt;/list&gt;\n     * \n     * @param body Formula to validate\n     */\n    public validateFormula(body?: FormulaValidationRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<FormulaValidationResponse> {\n        return this.validateFormulaWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<FormulaValidationResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Check that a Calculated Meter formula is valid. It is valid if the following are all true: &lt;list type&#x3D;\\&quot;bullet\\&quot;&gt;&lt;item&gt;&lt;description&gt;         It is syntactically correct     &lt;/description&gt;&lt;/item&gt;&lt;item&gt;&lt;description&gt;         It only calls allowed functions (including the custom function &#x60;channel()&#x60;\\&quot;)     &lt;/description&gt;&lt;/item&gt;&lt;item&gt;&lt;description&gt;         Each channel referenced (via &#x60;channel(channelId)&#x60;) is the Primary Value Channel         of some other datapoint (which also rules out self-references).     &lt;/description&gt;&lt;/item&gt;&lt;/list&gt;\n     * \n     * @param body Formula to validate\n     */\n    public validateCalculatedMeterFormulaWithHttpInfo(body?: FormulaValidationRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<FormulaValidationResponse>> {\n        const path = this.basePath + '/api/v202405/formula/validateCalculatedMeter';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<FormulaValidationResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Check that a Calculated Channel formula is valid, in the context of the given datapoint. It is valid if the following are all true: &lt;list type&#x3D;\\&quot;bullet\\&quot;&gt;&lt;item&gt;&lt;description&gt;         It is syntactically correct     &lt;/description&gt;&lt;/item&gt;&lt;item&gt;&lt;description&gt;         It only calls allowed functions (including the custom function &#x60;channel()&#x60;\\&quot;)     &lt;/description&gt;&lt;/item&gt;&lt;item&gt;&lt;description&gt;         Each channel referenced (via &#x60;channel(channelId)&#x60;) belongs to this datapoint         and is a simple (not calculated) channel (which also rules out self-references).     &lt;/description&gt;&lt;/item&gt;&lt;/list&gt;\n     * \n     * @param body Formula to validate\n     */\n    public validateFormulaWithHttpInfo(body?: FormulaValidationRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<FormulaValidationResponse>> {\n        const path = this.basePath + '/api/v202405/formula/validate';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<FormulaValidationResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { GHGFactorCategory } from '../model/gHGFactorCategory';\nimport { GHGFactorRegion } from '../model/gHGFactorRegion';\nimport { GHGFactorResponse } from '../model/gHGFactorResponse';\nimport { GHGFactorVersionHistoryResponse } from '../model/gHGFactorVersionHistoryResponse';\nimport { GHGScopeResponse } from '../model/gHGScopeResponse';\nimport { GHGSettingResponse } from '../model/gHGSettingResponse';\nimport { GHGasDefaultSettingRequest } from '../model/gHGasDefaultSettingRequest';\nimport { GHGasDefaultSettingResponse } from '../model/gHGasDefaultSettingResponse';\nimport { MeterActionCreateEmissionSource } from '../model/meterActionCreateEmissionSource';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class GHGService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Create emission sources for existing meters.\n     * \n     * @param body The ids of the meters for which to create emission sources\n     */\n    public createEmissionSourceForMeter(body?: MeterActionCreateEmissionSource, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.createEmissionSourceForMeterWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit the default GHG scopes and factors that are applied to new meters. Only included CommodityIds will be updated. If a CommodityId is not included in the list the currently assigned value will remain. To remove a default for a particular CommodityId set its ScopeCategoryId and DefaultFactor to null.\n     * \n     * @param body The default GHG scope and factor to be applied\n     */\n    public editDefaultGHGSettingsMultiFactor(body?: GHGasDefaultSettingRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<GHGasDefaultSettingResponse> {\n        return this.editDefaultGHGSettingsMultiFactorWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<GHGasDefaultSettingResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get the default GHG scopes and factors that are applied to new meters GHG License is required to call this endpoint\n     * \n     */\n    public getDefaultGHGSettingsMultiFactor(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<GHGasDefaultSettingResponse> {\n        return this.getDefaultGHGSettingsMultiFactorWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<GHGasDefaultSettingResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all the ghg factor categories\n     * \n     */\n    public getGHGFactorCategories(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<GHGFactorCategory>> {\n        return this.getGHGFactorCategoriesWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<GHGFactorCategory>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all the ghg factor regions\n     * \n     */\n    public getGHGFactorRegions(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<GHGFactorRegion>> {\n        return this.getGHGFactorRegionsWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<GHGFactorRegion>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get the version history of a specific GHG factor\n     * \n     * @param factorId The GHG factor to retrieve history for\n     */\n    public getGHGFactorVersionHistory(factorId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<GHGFactorVersionHistoryResponse>> {\n        return this.getGHGFactorVersionHistoryWithHttpInfo(factorId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<GHGFactorVersionHistoryResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all the ghg factors\n     * \n     * @param filter The api filters&gt;\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getGHGFactors(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<GHGFactorResponse>> {\n        return this.getGHGFactorsWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<GHGFactorResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get all GHG scope categories and scopes GHG License is required to call this endpoint\n     * \n     */\n    public getGHGScopesWithCategories(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<GHGScopeResponse>> {\n        return this.getGHGScopesWithCategoriesWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<GHGScopeResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get the configured GHG scope category and factor for a meter. GHG License is required to call this endpoint.\n     * \n     * @param meterId The meter to retrieve settings for\n     */\n    public getMeterGHGSettings(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<GHGSettingResponse> {\n        return this.getMeterGHGSettingsWithHttpInfo(meterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<GHGSettingResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Create emission sources for existing meters.\n     * \n     * @param body The ids of the meters for which to create emission sources\n     */\n    public createEmissionSourceForMeterWithHttpInfo(body?: MeterActionCreateEmissionSource, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202502/meter/emissionsource';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Edit the default GHG scopes and factors that are applied to new meters. Only included CommodityIds will be updated. If a CommodityId is not included in the list the currently assigned value will remain. To remove a default for a particular CommodityId set its ScopeCategoryId and DefaultFactor to null.\n     * \n     * @param body The default GHG scope and factor to be applied\n     */\n    public editDefaultGHGSettingsMultiFactorWithHttpInfo(body?: GHGasDefaultSettingRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<GHGasDefaultSettingResponse>> {\n        const path = this.basePath + '/api/v202502/ghg/default';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<GHGasDefaultSettingResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Get the default GHG scopes and factors that are applied to new meters GHG License is required to call this endpoint\n     * \n     */\n    public getDefaultGHGSettingsMultiFactorWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<GHGasDefaultSettingResponse>> {\n        const path = this.basePath + '/api/v202502/ghg/default';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<GHGasDefaultSettingResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all the ghg factor categories\n     * \n     */\n    public getGHGFactorCategoriesWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<GHGFactorCategory>>> {\n        const path = this.basePath + '/api/v202307/ghg/factorCategory';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<GHGFactorCategory>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all the ghg factor regions\n     * \n     */\n    public getGHGFactorRegionsWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<GHGFactorRegion>>> {\n        const path = this.basePath + '/api/v202307/ghg/factorRegion';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<GHGFactorRegion>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get the version history of a specific GHG factor\n     * \n     * @param factorId The GHG factor to retrieve history for\n     */\n    public getGHGFactorVersionHistoryWithHttpInfo(factorId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<GHGFactorVersionHistoryResponse>>> {\n        const path = this.basePath + '/api/v202210/ghg/factor/${factorId}/version'\n                    .replace('${' + 'factorId' + '}', String(factorId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'factorId' is not null or undefined\n        if (factorId === null || factorId === undefined) {\n            throw new Error('Required parameter factorId was null or undefined when calling getGHGFactorVersionHistory.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<GHGFactorVersionHistoryResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all the ghg factors\n     * \n     * @param filter The api filters&gt;\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getGHGFactorsWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<GHGFactorResponse>>> {\n        const path = this.basePath + '/api/v202307/ghg/factor';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<GHGFactorResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get all GHG scope categories and scopes GHG License is required to call this endpoint\n     * \n     */\n    public getGHGScopesWithCategoriesWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<GHGScopeResponse>>> {\n        const path = this.basePath + '/api/v202210/ghg/scope/scopeCategory';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<GHGScopeResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get the configured GHG scope category and factor for a meter. GHG License is required to call this endpoint.\n     * \n     * @param meterId The meter to retrieve settings for\n     */\n    public getMeterGHGSettingsWithHttpInfo(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<GHGSettingResponse>> {\n        const path = this.basePath + '/api/v202210/meter/${meterId}/ghgsetting'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getMeterGHGSettings.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<GHGSettingResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { GLSubcodeRequest } from '../model/gLSubcodeRequest';\nimport { GLSubcodeResponse } from '../model/gLSubcodeResponse';\nimport { GeneralLedgerRequest } from '../model/generalLedgerRequest';\nimport { GeneralLedgerResponse } from '../model/generalLedgerResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class GeneralLedgerService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Creates a General Ledger\n     * \n     * @param body Data representing the general ledger being created\n     */\n    public createGeneralLedger(body?: GeneralLedgerRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<GeneralLedgerResponse> {\n        return this.createGeneralLedgerWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<GeneralLedgerResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit General Ledger Subcode definitions - update name, type and if \\&quot;list\\&quot; type edit (add/delete/edit) pick list values.  One or more subcodes can be edited.\n     * \n     * @param body Provide the subcode definition\n     */\n    public editGLSubCodes(body?: Array<GLSubcodeRequest>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<GLSubcodeResponse>> {\n        return this.editGLSubCodesWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<GLSubcodeResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Updates a General Ledger\n     * \n     * @param generalLedgerId General Ledger ID to update\n     * @param body Data representing the general ledger to update\n     */\n    public editGeneralLedger(generalLedgerId: number, body?: GeneralLedgerRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<GeneralLedgerResponse> {\n        return this.editGeneralLedgerWithHttpInfo(generalLedgerId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<GeneralLedgerResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves specific General Ledger Subcode definition\n     * \n     * @param subCodeIndex The index of the subCode being retrieved\n     */\n    public getGLSubCode(subCodeIndex: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<GLSubcodeResponse> {\n        return this.getGLSubCodeWithHttpInfo(subCodeIndex, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<GLSubcodeResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves unique General Ledger Subcode values\n     * \n     * @param subCodeIndex The index of the subCode whose values are being retrieved\n     */\n    public getGLSubCodeValues(subCodeIndex: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<string>> {\n        return this.getGLSubCodeValuesWithHttpInfo(subCodeIndex, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<string>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all General Ledger SubCode definitions\n     * \n     */\n    public getGLSubCodes(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<GLSubcodeResponse>> {\n        return this.getGLSubCodesWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<GLSubcodeResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves a specific General Ledger\n     * \n     * @param generalLedgerId General Ledger ID to return\n     */\n    public getGeneralLedger(generalLedgerId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<GeneralLedgerResponse> {\n        return this.getGeneralLedgerWithHttpInfo(generalLedgerId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<GeneralLedgerResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all General Ledgers\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getGeneralLedgers(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<GeneralLedgerResponse>> {\n        return this.getGeneralLedgersWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<GeneralLedgerResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Creates a General Ledger\n     * \n     * @param body Data representing the general ledger being created\n     */\n    public createGeneralLedgerWithHttpInfo(body?: GeneralLedgerRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<GeneralLedgerResponse>> {\n        const path = this.basePath + '/api/v3/generalledger';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<GeneralLedgerResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Edit General Ledger Subcode definitions - update name, type and if \\&quot;list\\&quot; type edit (add/delete/edit) pick list values.  One or more subcodes can be edited.\n     * \n     * @param body Provide the subcode definition\n     */\n    public editGLSubCodesWithHttpInfo(body?: Array<GLSubcodeRequest>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<GLSubcodeResponse>>> {\n        const path = this.basePath + '/api/v3/glsubcode';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<GLSubcodeResponse>>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Updates a General Ledger\n     * \n     * @param generalLedgerId General Ledger ID to update\n     * @param body Data representing the general ledger to update\n     */\n    public editGeneralLedgerWithHttpInfo(generalLedgerId: number, body?: GeneralLedgerRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<GeneralLedgerResponse>> {\n        const path = this.basePath + '/api/v3/generalledger/${generalLedgerId}'\n                    .replace('${' + 'generalLedgerId' + '}', String(generalLedgerId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'generalLedgerId' is not null or undefined\n        if (generalLedgerId === null || generalLedgerId === undefined) {\n            throw new Error('Required parameter generalLedgerId was null or undefined when calling editGeneralLedger.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<GeneralLedgerResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Retrieves specific General Ledger Subcode definition\n     * \n     * @param subCodeIndex The index of the subCode being retrieved\n     */\n    public getGLSubCodeWithHttpInfo(subCodeIndex: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<GLSubcodeResponse>> {\n        const path = this.basePath + '/api/v3/glsubcode/${subCodeIndex}'\n                    .replace('${' + 'subCodeIndex' + '}', String(subCodeIndex));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'subCodeIndex' is not null or undefined\n        if (subCodeIndex === null || subCodeIndex === undefined) {\n            throw new Error('Required parameter subCodeIndex was null or undefined when calling getGLSubCode.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<GLSubcodeResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves unique General Ledger Subcode values\n     * \n     * @param subCodeIndex The index of the subCode whose values are being retrieved\n     */\n    public getGLSubCodeValuesWithHttpInfo(subCodeIndex: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<string>>> {\n        const path = this.basePath + '/api/v3/glsubcode/${subCodeIndex}/savedValues'\n                    .replace('${' + 'subCodeIndex' + '}', String(subCodeIndex));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'subCodeIndex' is not null or undefined\n        if (subCodeIndex === null || subCodeIndex === undefined) {\n            throw new Error('Required parameter subCodeIndex was null or undefined when calling getGLSubCodeValues.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<string>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all General Ledger SubCode definitions\n     * \n     */\n    public getGLSubCodesWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<GLSubcodeResponse>>> {\n        const path = this.basePath + '/api/v3/glsubcode';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<GLSubcodeResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves a specific General Ledger\n     * \n     * @param generalLedgerId General Ledger ID to return\n     */\n    public getGeneralLedgerWithHttpInfo(generalLedgerId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<GeneralLedgerResponse>> {\n        const path = this.basePath + '/api/v3/generalledger/${generalLedgerId}'\n                    .replace('${' + 'generalLedgerId' + '}', String(generalLedgerId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'generalLedgerId' is not null or undefined\n        if (generalLedgerId === null || generalLedgerId === undefined) {\n            throw new Error('Required parameter generalLedgerId was null or undefined when calling getGeneralLedger.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<GeneralLedgerResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all General Ledgers\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getGeneralLedgersWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<GeneralLedgerResponse>>> {\n        const path = this.basePath + '/api/v3/generalledger';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<GeneralLedgerResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { CostCenterChild } from '../model/costCenterChild';\nimport { HierarchicalCollections } from '../model/hierarchicalCollections';\nimport { HierarchicalCostCenters } from '../model/hierarchicalCostCenters';\nimport { HierarchicalPlaces } from '../model/hierarchicalPlaces';\nimport { HierarchicalSpaces } from '../model/hierarchicalSpaces';\nimport { PlaceChild } from '../model/placeChild';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class HierarchyService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * For a list of topmost places, get associated topmost cost centers.\n     * \n     * @param body List of placeIds to get associated topmost cost centers.\n     */\n    public availableCostCentersForTopmostPlaces(body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<CostCenterChild>> {\n        return this.availableCostCentersForTopmostPlacesWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<CostCenterChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * For a list of topmost cost centers, get associated topmost places.\n     * \n     * @param body List of costCenterIds to get associated topmost places.\n     */\n    public availablePlacesForTopmostCostCenters(body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PlaceChild>> {\n        return this.availablePlacesForTopmostCostCentersWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PlaceChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Returns account ancestry information, useful for populating a tree of costCenters\n     * \n     * @param accountId Account ID\n     */\n    public hierarchicalAncestryAccounts(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HierarchicalCostCenters> {\n        return this.hierarchicalAncestryAccountsWithHttpInfo(accountId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<HierarchicalCostCenters>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Returns collection ancestry information, useful for populating a tree of collections\n     * \n     * @param collectionId Collection ID\n     */\n    public hierarchicalAncestryCollections(collectionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HierarchicalCollections> {\n        return this.hierarchicalAncestryCollectionsWithHttpInfo(collectionId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<HierarchicalCollections>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Returns cost center ancestry information, useful for populating a tree of cost centers\n     * \n     * @param costCenterId CostCenter ID\n     */\n    public hierarchicalAncestryCostCenters(costCenterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HierarchicalCostCenters> {\n        return this.hierarchicalAncestryCostCentersWithHttpInfo(costCenterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<HierarchicalCostCenters>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Returns the data point ancestry information, useful for populating a tree of spaces\n     * \n     * @param dataPointId Data point Id\n     */\n    public hierarchicalAncestryDataPoints(dataPointId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HierarchicalSpaces> {\n        return this.hierarchicalAncestryDataPointsWithHttpInfo(dataPointId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<HierarchicalSpaces>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Returns emission source ancestry information, useful for populating a tree of collections\n     * \n     * @param emissionSourceId Emission Source ID\n     */\n    public hierarchicalAncestryEmissionSources(emissionSourceId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HierarchicalCollections> {\n        return this.hierarchicalAncestryEmissionSourcesWithHttpInfo(emissionSourceId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<HierarchicalCollections>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Returns meter ancestry information, useful for populating a tree of places\n     * \n     * @param meterId Meter ID\n     */\n    public hierarchicalAncestryMeters(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HierarchicalPlaces> {\n        return this.hierarchicalAncestryMetersWithHttpInfo(meterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<HierarchicalPlaces>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Returns place ancestry information, useful for populating a tree of places\n     * \n     * @param placeId Place ID\n     */\n    public hierarchicalAncestryPlaces(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HierarchicalPlaces> {\n        return this.hierarchicalAncestryPlacesWithHttpInfo(placeId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<HierarchicalPlaces>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Returns the space ancestry information, useful for populating a tree of spaces\n     * \n     * @param placeId Place Id\n     */\n    public hierarchicalAncestrySpaces(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HierarchicalSpaces> {\n        return this.hierarchicalAncestrySpacesWithHttpInfo(placeId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<HierarchicalSpaces>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Returns collection descendant information, useful for expanding a collection node\n     * \n     * @param collectionId Collection ID\n     */\n    public hierarchicalCollection(collectionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HierarchicalCollections> {\n        return this.hierarchicalCollectionWithHttpInfo(collectionId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<HierarchicalCollections>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Returns costCenter descendant information, useful for expanding a costCenter node\n     * \n     * @param costCenterId CostCenter ID\n     */\n    public hierarchicalCostCenter(costCenterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HierarchicalCostCenters> {\n        return this.hierarchicalCostCenterWithHttpInfo(costCenterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<HierarchicalCostCenters>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Returns place descendant information, useful for expanding a place node\n     * \n     * @param placeId Place ID\n     */\n    public hierarchicalPlace(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HierarchicalPlaces> {\n        return this.hierarchicalPlaceWithHttpInfo(placeId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<HierarchicalPlaces>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Returns the space descendant information, useful for expanding a space node\n     * \n     * @param placeId Place Id\n     */\n    public hierarchicalSpace(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HierarchicalSpaces> {\n        return this.hierarchicalSpaceWithHttpInfo(placeId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<HierarchicalSpaces>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * For a list of topmost places, get associated topmost cost centers.\n     * \n     * @param body List of placeIds to get associated topmost cost centers.\n     */\n    public availableCostCentersForTopmostPlacesWithHttpInfo(body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<CostCenterChild>>> {\n        const path = this.basePath + '/api/v3/hierarchy/place/availableCostCenters';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<CostCenterChild>>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * For a list of topmost cost centers, get associated topmost places.\n     * \n     * @param body List of costCenterIds to get associated topmost places.\n     */\n    public availablePlacesForTopmostCostCentersWithHttpInfo(body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PlaceChild>>> {\n        const path = this.basePath + '/api/v3/hierarchy/costCenter/availablePlaces';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PlaceChild>>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Returns account ancestry information, useful for populating a tree of costCenters\n     * \n     * @param accountId Account ID\n     */\n    public hierarchicalAncestryAccountsWithHttpInfo(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<HierarchicalCostCenters>> {\n        const path = this.basePath + '/api/v3/hierarchy/ancestry/account/${accountId}'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling hierarchicalAncestryAccounts.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<HierarchicalCostCenters>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Returns collection ancestry information, useful for populating a tree of collections\n     * \n     * @param collectionId Collection ID\n     */\n    public hierarchicalAncestryCollectionsWithHttpInfo(collectionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<HierarchicalCollections>> {\n        const path = this.basePath + '/api/v202306/hierarchy/ancestry/collection/${collectionId}'\n                    .replace('${' + 'collectionId' + '}', String(collectionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'collectionId' is not null or undefined\n        if (collectionId === null || collectionId === undefined) {\n            throw new Error('Required parameter collectionId was null or undefined when calling hierarchicalAncestryCollections.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<HierarchicalCollections>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Returns cost center ancestry information, useful for populating a tree of cost centers\n     * \n     * @param costCenterId CostCenter ID\n     */\n    public hierarchicalAncestryCostCentersWithHttpInfo(costCenterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<HierarchicalCostCenters>> {\n        const path = this.basePath + '/api/v3/hierarchy/ancestry/costCenter/${costCenterId}'\n                    .replace('${' + 'costCenterId' + '}', String(costCenterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'costCenterId' is not null or undefined\n        if (costCenterId === null || costCenterId === undefined) {\n            throw new Error('Required parameter costCenterId was null or undefined when calling hierarchicalAncestryCostCenters.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<HierarchicalCostCenters>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Returns the data point ancestry information, useful for populating a tree of spaces\n     * \n     * @param dataPointId Data point Id\n     */\n    public hierarchicalAncestryDataPointsWithHttpInfo(dataPointId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<HierarchicalSpaces>> {\n        const path = this.basePath + '/api/v202405/hierarchy/ancestry/datapoint/${dataPointId}'\n                    .replace('${' + 'dataPointId' + '}', String(dataPointId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'dataPointId' is not null or undefined\n        if (dataPointId === null || dataPointId === undefined) {\n            throw new Error('Required parameter dataPointId was null or undefined when calling hierarchicalAncestryDataPoints.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<HierarchicalSpaces>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Returns emission source ancestry information, useful for populating a tree of collections\n     * \n     * @param emissionSourceId Emission Source ID\n     */\n    public hierarchicalAncestryEmissionSourcesWithHttpInfo(emissionSourceId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<HierarchicalCollections>> {\n        const path = this.basePath + '/api/v202306/hierarchy/ancestry/emissionSource/${emissionSourceId}'\n                    .replace('${' + 'emissionSourceId' + '}', String(emissionSourceId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'emissionSourceId' is not null or undefined\n        if (emissionSourceId === null || emissionSourceId === undefined) {\n            throw new Error('Required parameter emissionSourceId was null or undefined when calling hierarchicalAncestryEmissionSources.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<HierarchicalCollections>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Returns meter ancestry information, useful for populating a tree of places\n     * \n     * @param meterId Meter ID\n     */\n    public hierarchicalAncestryMetersWithHttpInfo(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<HierarchicalPlaces>> {\n        const path = this.basePath + '/api/v3/hierarchy/ancestry/meter/${meterId}'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling hierarchicalAncestryMeters.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<HierarchicalPlaces>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Returns place ancestry information, useful for populating a tree of places\n     * \n     * @param placeId Place ID\n     */\n    public hierarchicalAncestryPlacesWithHttpInfo(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<HierarchicalPlaces>> {\n        const path = this.basePath + '/api/v3/hierarchy/ancestry/place/${placeId}'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling hierarchicalAncestryPlaces.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<HierarchicalPlaces>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Returns the space ancestry information, useful for populating a tree of spaces\n     * \n     * @param placeId Place Id\n     */\n    public hierarchicalAncestrySpacesWithHttpInfo(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<HierarchicalSpaces>> {\n        const path = this.basePath + '/api/v202405/hierarchy/ancestry/space/${placeId}'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling hierarchicalAncestrySpaces.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<HierarchicalSpaces>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Returns collection descendant information, useful for expanding a collection node\n     * \n     * @param collectionId Collection ID\n     */\n    public hierarchicalCollectionWithHttpInfo(collectionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<HierarchicalCollections>> {\n        const path = this.basePath + '/api/v202306/hierarchy/collection/${collectionId}'\n                    .replace('${' + 'collectionId' + '}', String(collectionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'collectionId' is not null or undefined\n        if (collectionId === null || collectionId === undefined) {\n            throw new Error('Required parameter collectionId was null or undefined when calling hierarchicalCollection.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<HierarchicalCollections>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Returns costCenter descendant information, useful for expanding a costCenter node\n     * \n     * @param costCenterId CostCenter ID\n     */\n    public hierarchicalCostCenterWithHttpInfo(costCenterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<HierarchicalCostCenters>> {\n        const path = this.basePath + '/api/v3/hierarchy/costCenter/${costCenterId}'\n                    .replace('${' + 'costCenterId' + '}', String(costCenterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'costCenterId' is not null or undefined\n        if (costCenterId === null || costCenterId === undefined) {\n            throw new Error('Required parameter costCenterId was null or undefined when calling hierarchicalCostCenter.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<HierarchicalCostCenters>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Returns place descendant information, useful for expanding a place node\n     * \n     * @param placeId Place ID\n     */\n    public hierarchicalPlaceWithHttpInfo(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<HierarchicalPlaces>> {\n        const path = this.basePath + '/api/v3/hierarchy/place/${placeId}'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling hierarchicalPlace.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<HierarchicalPlaces>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Returns the space descendant information, useful for expanding a space node\n     * \n     * @param placeId Place Id\n     */\n    public hierarchicalSpaceWithHttpInfo(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<HierarchicalSpaces>> {\n        const path = this.basePath + '/api/v202405/hierarchy/space/${placeId}'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling hierarchicalSpace.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<HierarchicalSpaces>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { BillImportKickoutDetailsResponse } from '../model/billImportKickoutDetailsResponse';\nimport { BillImportProfileRequest } from '../model/billImportProfileRequest';\nimport { BillImportProfileResponse } from '../model/billImportProfileResponse';\nimport { BillImportRequest } from '../model/billImportRequest';\nimport { BillImportTaskKickoutSummaryResponse } from '../model/billImportTaskKickoutSummaryResponse';\nimport { BillKickoutImportRequest } from '../model/billKickoutImportRequest';\nimport { DetailedGuidResponse } from '../model/detailedGuidResponse';\nimport { EsaReadingImportProfileCreate } from '../model/esaReadingImportProfileCreate';\nimport { EsaReadingImportProfileEdit } from '../model/esaReadingImportProfileEdit';\nimport { EsaReadingImportProfileResponse } from '../model/esaReadingImportProfileResponse';\nimport { EsaReadingImportRequest } from '../model/esaReadingImportRequest';\nimport { GuidResponse } from '../model/guidResponse';\nimport { ReadingImportProfileRequest } from '../model/readingImportProfileRequest';\nimport { ReadingImportProfileResponse } from '../model/readingImportProfileResponse';\nimport { ReadingImportRequest } from '../model/readingImportRequest';\nimport { RecordImportProfileEdit } from '../model/recordImportProfileEdit';\nimport { RecordImportProfileRequest } from '../model/recordImportProfileRequest';\nimport { RecordImportProfileResponse } from '../model/recordImportProfileResponse';\nimport { RecordImportRequest } from '../model/recordImportRequest';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class ImportService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * This endpoint allows the import of an EnergyCAP Advanced or a profile mapped file. The file can be comma separated file (CSV/DAT/TXT) or EXCEL (XLSX) or a collection of files (ZIP). The file should be base64 encoded with a UTF8 character set.\n     * \n     * @param body DTO containing the data to import, filename with extension, optional profileCode to map input file to advanced format, optional batch settings, optional import note/comment, and optional properties to automatically resolve audit failures and reason for resolution\n     */\n    public billImport(body?: BillImportRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<GuidResponse> {\n        return this.billImportWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<GuidResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Creates an ESA reading import profile\n     * \n     * @param body Object containing settings for the new profile\n     */\n    public createEsaReadingImportProfile(body?: EsaReadingImportProfileCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EsaReadingImportProfileResponse> {\n        return this.createEsaReadingImportProfileWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EsaReadingImportProfileResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Creates an interval data import profile\n     * \n     * @param body The details about the profile being created\n     */\n    public createReadingImportProfile(body?: ReadingImportProfileRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ReadingImportProfileResponse> {\n        return this.createReadingImportProfileWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ReadingImportProfileResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Creates an emission record import profile\n     * \n     * @param body Object containing settings for the new profile\n     */\n    public createRecordImportProfile(body?: RecordImportProfileRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<RecordImportProfileResponse> {\n        return this.createRecordImportProfileWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<RecordImportProfileResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes a bill import profile\n     * \n     * @param profileId The identifier for the profile being deleted\n     */\n    public deleteBillImportProfile(profileId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteBillImportProfileWithHttpInfo(profileId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes an ESA reading import profile\n     * \n     * @param profileId The identifier of the profile to delete\n     */\n    public deleteEsaReadingImportProfile(profileId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteEsaReadingImportProfileWithHttpInfo(profileId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes a reading import profile\n     * \n     * @param profileId The identifier for the profile being deleted\n     */\n    public deleteReadingImportProfile(profileId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteReadingImportProfileWithHttpInfo(profileId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes an emission record import profile\n     * \n     * @param profileId The identifier of the profile to delete\n     */\n    public deleteRecordImportProfile(profileId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteRecordImportProfileWithHttpInfo(profileId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit a bill import profile\n     * \n     * @param profileId The identifier for the profile being edited\n     * @param body The details about the profile being edited\n     */\n    public editBillImportProfile(profileId: number, body?: BillImportProfileRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BillImportProfileResponse> {\n        return this.editBillImportProfileWithHttpInfo(profileId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BillImportProfileResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits an ESA reading import profile\n     * \n     * @param profileId The identifier of the profile to edit\n     * @param body Object containing settings for the profile\n     */\n    public editEsaReadingImportProfile(profileId: number, body?: EsaReadingImportProfileEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EsaReadingImportProfileResponse> {\n        return this.editEsaReadingImportProfileWithHttpInfo(profileId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EsaReadingImportProfileResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits an interval data import profile\n     * \n     * @param profileId The identifier for the profile being edited\n     * @param body The details about the profile being edited\n     */\n    public editReadingImportProfile(profileId: number, body?: ReadingImportProfileRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ReadingImportProfileResponse> {\n        return this.editReadingImportProfileWithHttpInfo(profileId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ReadingImportProfileResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits an emission record import profile\n     * \n     * @param profileId The identifier of the profile to edit\n     * @param body Object containing settings to change\n     */\n    public editRecordImportProfile(profileId: number, body?: RecordImportProfileEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<RecordImportProfileResponse> {\n        return this.editRecordImportProfileWithHttpInfo(profileId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<RecordImportProfileResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves the kickout details associated with a specified bill import task and an optional kickout message.\n     * \n     * @param taskGuid The task GUID to search for. The task must be of type Bill Import.\n     * @param kickoutMessage The optional kickout message to search for.\n     */\n    public getBillImportKickoutDetails(taskGuid: string, kickoutMessage?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BillImportKickoutDetailsResponse> {\n        return this.getBillImportKickoutDetailsWithHttpInfo(taskGuid, kickoutMessage, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BillImportKickoutDetailsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves the kickout details associated with a specified bill import task, file and an optional kickout message.\n     * \n     * @param taskGuid The task GUID to search for. The task must be of type Bill Import.\n     * @param filename The kickout file name to search for.\n     * @param kickoutMessage The optional kickout message to search for.\n     */\n    public getBillImportKickoutDetailsByFile(taskGuid: string, filename: string, kickoutMessage?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BillImportKickoutDetailsResponse> {\n        return this.getBillImportKickoutDetailsByFileWithHttpInfo(taskGuid, filename, kickoutMessage, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BillImportKickoutDetailsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a bill import profile\n     * \n     * @param profileId The identifier for the profile to get\n     */\n    public getBillImportProfile(profileId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BillImportProfileResponse> {\n        return this.getBillImportProfileWithHttpInfo(profileId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BillImportProfileResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get all bill import profiles\n     * \n     */\n    public getBillImportProfiles(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BillImportProfileResponse>> {\n        return this.getBillImportProfilesWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BillImportProfileResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Gets an ESA reading import profile\n     * \n     * @param profileId \n     */\n    public getEsaReadingImportProfile(profileId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EsaReadingImportProfileResponse> {\n        return this.getEsaReadingImportProfileWithHttpInfo(profileId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EsaReadingImportProfileResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get all ESA reading import profiles\n     * \n     */\n    public getEsaReadingImportProfiles(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<EsaReadingImportProfileResponse>> {\n        return this.getEsaReadingImportProfilesWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<EsaReadingImportProfileResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Returns one reading import profile\n     * \n     * @param profileId \n     */\n    public getReadingImportProfile(profileId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ReadingImportProfileResponse> {\n        return this.getReadingImportProfileWithHttpInfo(profileId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ReadingImportProfileResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Returns all Reading Import profiles\n     * \n     */\n    public getReadingImportProfiles(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<ReadingImportProfileResponse>> {\n        return this.getReadingImportProfilesWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<ReadingImportProfileResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get an emission record import profile\n     * \n     * @param profileId The identifier of the profile to get\n     */\n    public getRecordImportProfile(profileId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<RecordImportProfileResponse> {\n        return this.getRecordImportProfileWithHttpInfo(profileId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<RecordImportProfileResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get all emission record import profiles\n     * \n     */\n    public getRecordImportProfiles(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<RecordImportProfileResponse>> {\n        return this.getRecordImportProfilesWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<RecordImportProfileResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves a list of kickout messages associated with a specified bill import task\n     * \n     * @param taskGuid The task GUID to search for. The task must be of type Bill Import.\n     */\n    public getTaskKickoutSummary(taskGuid: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BillImportTaskKickoutSummaryResponse> {\n        return this.getTaskKickoutSummaryWithHttpInfo(taskGuid, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BillImportTaskKickoutSummaryResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves a list of kickout messages associated with a specified bill import task and file.\n     * \n     * @param taskGuid The task GUID to search for. The task must be of type Bill Import.\n     * @param filename The kickout file name to search for.\n     */\n    public getTaskKickoutSummaryByFile(taskGuid: string, filename: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BillImportTaskKickoutSummaryResponse> {\n        return this.getTaskKickoutSummaryByFileWithHttpInfo(taskGuid, filename, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BillImportTaskKickoutSummaryResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * This endpoint allows the reimport of an EnergyCAP. All kickout files generated from the import will be zipped and reimported as a single task.\n     * \n     * @param taskGuid The taskGuid should be a bill import task with a status of completed with kickouts.\n     * @param body DTO containing optional batch settings, optional import note/comment, and optional properties to automatically resolve audit failures and reason for resolution\n     */\n    public importBillImportTaskKickouts(taskGuid: string, body?: BillKickoutImportRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<GuidResponse> {\n        return this.importBillImportTaskKickoutsWithHttpInfo(taskGuid, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<GuidResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * This endpoint allows the import of a emission records import file. The file should be a base64-encoded delimited text file with a UTF8 character set.\n     * \n     * @param body DTO containing the data to import and the profile that defines the structure.\n     */\n    public importEmissionRecordsWithProfile(body?: RecordImportRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<GuidResponse> {\n        return this.importEmissionRecordsWithProfileWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<GuidResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * This endpoint allows the import of an ESA reading import file. The file should be a base64-encoded file with a UTF8 character set.\n     * \n     * @param body DTO containing the data to import and the profile that defines the structure.\n     */\n    public importEsaReadingWithProfile(body?: EsaReadingImportRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<DetailedGuidResponse>> {\n        return this.importEsaReadingWithProfileWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<DetailedGuidResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * This endpoint allows the import of a channel reading (\\&quot;interval\\&quot;) data import file. The file should be a base64-encoded delimited text file with a UTF8 character set.\n     * \n     * @param body DTO containing the data to export and the profile that defines the structure.\n     */\n    public readingImport(body?: ReadingImportRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<GuidResponse> {\n        return this.readingImportWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<GuidResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Creates a bill import profile\n     * \n     * @param body The details about the profile being created\n     */\n    public writeBillImportProfile(body?: BillImportProfileRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BillImportProfileResponse> {\n        return this.writeBillImportProfileWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BillImportProfileResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * This endpoint allows the import of an EnergyCAP Advanced or a profile mapped file. The file can be comma separated file (CSV/DAT/TXT) or EXCEL (XLSX) or a collection of files (ZIP). The file should be base64 encoded with a UTF8 character set.\n     * \n     * @param body DTO containing the data to import, filename with extension, optional profileCode to map input file to advanced format, optional batch settings, optional import note/comment, and optional properties to automatically resolve audit failures and reason for resolution\n     */\n    public billImportWithHttpInfo(body?: BillImportRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<GuidResponse>> {\n        const path = this.basePath + '/api/v3/import/bill';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<GuidResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Creates an ESA reading import profile\n     * \n     * @param body Object containing settings for the new profile\n     */\n    public createEsaReadingImportProfileWithHttpInfo(body?: EsaReadingImportProfileCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EsaReadingImportProfileResponse>> {\n        const path = this.basePath + '/api/v202407/import/esareading/profile';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EsaReadingImportProfileResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Creates an interval data import profile\n     * \n     * @param body The details about the profile being created\n     */\n    public createReadingImportProfileWithHttpInfo(body?: ReadingImportProfileRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ReadingImportProfileResponse>> {\n        const path = this.basePath + '/api/v3/import/reading/profile';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ReadingImportProfileResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Creates an emission record import profile\n     * \n     * @param body Object containing settings for the new profile\n     */\n    public createRecordImportProfileWithHttpInfo(body?: RecordImportProfileRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<RecordImportProfileResponse>> {\n        const path = this.basePath + '/api/v202403/import/record/profile';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<RecordImportProfileResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Deletes a bill import profile\n     * \n     * @param profileId The identifier for the profile being deleted\n     */\n    public deleteBillImportProfileWithHttpInfo(profileId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/import/bill/profile/${profileId}'\n                    .replace('${' + 'profileId' + '}', String(profileId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'profileId' is not null or undefined\n        if (profileId === null || profileId === undefined) {\n            throw new Error('Required parameter profileId was null or undefined when calling deleteBillImportProfile.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Deletes an ESA reading import profile\n     * \n     * @param profileId The identifier of the profile to delete\n     */\n    public deleteEsaReadingImportProfileWithHttpInfo(profileId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202407/import/esareading/profile/${profileId}'\n                    .replace('${' + 'profileId' + '}', String(profileId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'profileId' is not null or undefined\n        if (profileId === null || profileId === undefined) {\n            throw new Error('Required parameter profileId was null or undefined when calling deleteEsaReadingImportProfile.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Deletes a reading import profile\n     * \n     * @param profileId The identifier for the profile being deleted\n     */\n    public deleteReadingImportProfileWithHttpInfo(profileId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/import/reading/profile/${profileId}'\n                    .replace('${' + 'profileId' + '}', String(profileId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'profileId' is not null or undefined\n        if (profileId === null || profileId === undefined) {\n            throw new Error('Required parameter profileId was null or undefined when calling deleteReadingImportProfile.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Deletes an emission record import profile\n     * \n     * @param profileId The identifier of the profile to delete\n     */\n    public deleteRecordImportProfileWithHttpInfo(profileId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202403/import/record/profile/${profileId}'\n                    .replace('${' + 'profileId' + '}', String(profileId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'profileId' is not null or undefined\n        if (profileId === null || profileId === undefined) {\n            throw new Error('Required parameter profileId was null or undefined when calling deleteRecordImportProfile.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Edit a bill import profile\n     * \n     * @param profileId The identifier for the profile being edited\n     * @param body The details about the profile being edited\n     */\n    public editBillImportProfileWithHttpInfo(profileId: number, body?: BillImportProfileRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BillImportProfileResponse>> {\n        const path = this.basePath + '/api/v3/import/bill/profile/${profileId}'\n                    .replace('${' + 'profileId' + '}', String(profileId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'profileId' is not null or undefined\n        if (profileId === null || profileId === undefined) {\n            throw new Error('Required parameter profileId was null or undefined when calling editBillImportProfile.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BillImportProfileResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edits an ESA reading import profile\n     * \n     * @param profileId The identifier of the profile to edit\n     * @param body Object containing settings for the profile\n     */\n    public editEsaReadingImportProfileWithHttpInfo(profileId: number, body?: EsaReadingImportProfileEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EsaReadingImportProfileResponse>> {\n        const path = this.basePath + '/api/v202407/import/esareading/profile/${profileId}'\n                    .replace('${' + 'profileId' + '}', String(profileId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'profileId' is not null or undefined\n        if (profileId === null || profileId === undefined) {\n            throw new Error('Required parameter profileId was null or undefined when calling editEsaReadingImportProfile.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EsaReadingImportProfileResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edits an interval data import profile\n     * \n     * @param profileId The identifier for the profile being edited\n     * @param body The details about the profile being edited\n     */\n    public editReadingImportProfileWithHttpInfo(profileId: number, body?: ReadingImportProfileRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ReadingImportProfileResponse>> {\n        const path = this.basePath + '/api/v3/import/reading/profile/${profileId}'\n                    .replace('${' + 'profileId' + '}', String(profileId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'profileId' is not null or undefined\n        if (profileId === null || profileId === undefined) {\n            throw new Error('Required parameter profileId was null or undefined when calling editReadingImportProfile.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ReadingImportProfileResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edits an emission record import profile\n     * \n     * @param profileId The identifier of the profile to edit\n     * @param body Object containing settings to change\n     */\n    public editRecordImportProfileWithHttpInfo(profileId: number, body?: RecordImportProfileEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<RecordImportProfileResponse>> {\n        const path = this.basePath + '/api/v202403/import/record/profile/${profileId}'\n                    .replace('${' + 'profileId' + '}', String(profileId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'profileId' is not null or undefined\n        if (profileId === null || profileId === undefined) {\n            throw new Error('Required parameter profileId was null or undefined when calling editRecordImportProfile.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<RecordImportProfileResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Retrieves the kickout details associated with a specified bill import task and an optional kickout message.\n     * \n     * @param taskGuid The task GUID to search for. The task must be of type Bill Import.\n     * @param kickoutMessage The optional kickout message to search for.\n     */\n    public getBillImportKickoutDetailsWithHttpInfo(taskGuid: string, kickoutMessage?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BillImportKickoutDetailsResponse>> {\n        const path = this.basePath + '/api/v202401/import/bill/task/${taskGuid}/kickout/detail'\n                    .replace('${' + 'taskGuid' + '}', String(taskGuid));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'taskGuid' is not null or undefined\n        if (taskGuid === null || taskGuid === undefined) {\n            throw new Error('Required parameter taskGuid was null or undefined when calling getBillImportKickoutDetails.');\n        }\n        if (kickoutMessage !== undefined) {\n            queryParameters = queryParameters.set('kickoutMessage', <any>kickoutMessage);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BillImportKickoutDetailsResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves the kickout details associated with a specified bill import task, file and an optional kickout message.\n     * \n     * @param taskGuid The task GUID to search for. The task must be of type Bill Import.\n     * @param filename The kickout file name to search for.\n     * @param kickoutMessage The optional kickout message to search for.\n     */\n    public getBillImportKickoutDetailsByFileWithHttpInfo(taskGuid: string, filename: string, kickoutMessage?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BillImportKickoutDetailsResponse>> {\n        const path = this.basePath + '/api/v202401/import/bill/task/${taskGuid}/kickout/${filename}/detail'\n                    .replace('${' + 'taskGuid' + '}', String(taskGuid))\n                    .replace('${' + 'filename' + '}', String(filename));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'taskGuid' is not null or undefined\n        if (taskGuid === null || taskGuid === undefined) {\n            throw new Error('Required parameter taskGuid was null or undefined when calling getBillImportKickoutDetailsByFile.');\n        }\n        // verify required parameter 'filename' is not null or undefined\n        if (filename === null || filename === undefined) {\n            throw new Error('Required parameter filename was null or undefined when calling getBillImportKickoutDetailsByFile.');\n        }\n        if (kickoutMessage !== undefined) {\n            queryParameters = queryParameters.set('kickoutMessage', <any>kickoutMessage);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BillImportKickoutDetailsResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a bill import profile\n     * \n     * @param profileId The identifier for the profile to get\n     */\n    public getBillImportProfileWithHttpInfo(profileId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BillImportProfileResponse>> {\n        const path = this.basePath + '/api/v3/import/bill/profile/${profileId}'\n                    .replace('${' + 'profileId' + '}', String(profileId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'profileId' is not null or undefined\n        if (profileId === null || profileId === undefined) {\n            throw new Error('Required parameter profileId was null or undefined when calling getBillImportProfile.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BillImportProfileResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get all bill import profiles\n     * \n     */\n    public getBillImportProfilesWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BillImportProfileResponse>>> {\n        const path = this.basePath + '/api/v3/import/bill/profile';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BillImportProfileResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Gets an ESA reading import profile\n     * \n     * @param profileId \n     */\n    public getEsaReadingImportProfileWithHttpInfo(profileId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EsaReadingImportProfileResponse>> {\n        const path = this.basePath + '/api/v202407/import/esareading/profile/${profileId}'\n                    .replace('${' + 'profileId' + '}', String(profileId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'profileId' is not null or undefined\n        if (profileId === null || profileId === undefined) {\n            throw new Error('Required parameter profileId was null or undefined when calling getEsaReadingImportProfile.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EsaReadingImportProfileResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get all ESA reading import profiles\n     * \n     */\n    public getEsaReadingImportProfilesWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<EsaReadingImportProfileResponse>>> {\n        const path = this.basePath + '/api/v202407/import/esareading/profile';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<EsaReadingImportProfileResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Returns one reading import profile\n     * \n     * @param profileId \n     */\n    public getReadingImportProfileWithHttpInfo(profileId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ReadingImportProfileResponse>> {\n        const path = this.basePath + '/api/v3/import/reading/profile/${profileId}'\n                    .replace('${' + 'profileId' + '}', String(profileId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'profileId' is not null or undefined\n        if (profileId === null || profileId === undefined) {\n            throw new Error('Required parameter profileId was null or undefined when calling getReadingImportProfile.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ReadingImportProfileResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Returns all Reading Import profiles\n     * \n     */\n    public getReadingImportProfilesWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<ReadingImportProfileResponse>>> {\n        const path = this.basePath + '/api/v3/import/reading/profile';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<ReadingImportProfileResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get an emission record import profile\n     * \n     * @param profileId The identifier of the profile to get\n     */\n    public getRecordImportProfileWithHttpInfo(profileId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<RecordImportProfileResponse>> {\n        const path = this.basePath + '/api/v202403/import/record/profile/${profileId}'\n                    .replace('${' + 'profileId' + '}', String(profileId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'profileId' is not null or undefined\n        if (profileId === null || profileId === undefined) {\n            throw new Error('Required parameter profileId was null or undefined when calling getRecordImportProfile.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<RecordImportProfileResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get all emission record import profiles\n     * \n     */\n    public getRecordImportProfilesWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<RecordImportProfileResponse>>> {\n        const path = this.basePath + '/api/v202403/import/record/profile';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<RecordImportProfileResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves a list of kickout messages associated with a specified bill import task\n     * \n     * @param taskGuid The task GUID to search for. The task must be of type Bill Import.\n     */\n    public getTaskKickoutSummaryWithHttpInfo(taskGuid: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BillImportTaskKickoutSummaryResponse>> {\n        const path = this.basePath + '/api/v202401/import/bill/task/${taskGuid}/kickout/summary'\n                    .replace('${' + 'taskGuid' + '}', String(taskGuid));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'taskGuid' is not null or undefined\n        if (taskGuid === null || taskGuid === undefined) {\n            throw new Error('Required parameter taskGuid was null or undefined when calling getTaskKickoutSummary.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BillImportTaskKickoutSummaryResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves a list of kickout messages associated with a specified bill import task and file.\n     * \n     * @param taskGuid The task GUID to search for. The task must be of type Bill Import.\n     * @param filename The kickout file name to search for.\n     */\n    public getTaskKickoutSummaryByFileWithHttpInfo(taskGuid: string, filename: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BillImportTaskKickoutSummaryResponse>> {\n        const path = this.basePath + '/api/v202401/import/bill/task/${taskGuid}/kickout/${filename}/summary'\n                    .replace('${' + 'taskGuid' + '}', String(taskGuid))\n                    .replace('${' + 'filename' + '}', String(filename));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'taskGuid' is not null or undefined\n        if (taskGuid === null || taskGuid === undefined) {\n            throw new Error('Required parameter taskGuid was null or undefined when calling getTaskKickoutSummaryByFile.');\n        }\n        // verify required parameter 'filename' is not null or undefined\n        if (filename === null || filename === undefined) {\n            throw new Error('Required parameter filename was null or undefined when calling getTaskKickoutSummaryByFile.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BillImportTaskKickoutSummaryResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * This endpoint allows the reimport of an EnergyCAP. All kickout files generated from the import will be zipped and reimported as a single task.\n     * \n     * @param taskGuid The taskGuid should be a bill import task with a status of completed with kickouts.\n     * @param body DTO containing optional batch settings, optional import note/comment, and optional properties to automatically resolve audit failures and reason for resolution\n     */\n    public importBillImportTaskKickoutsWithHttpInfo(taskGuid: string, body?: BillKickoutImportRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<GuidResponse>> {\n        const path = this.basePath + '/api/v202401/import/bill/task/${taskGuid}/kickout'\n                    .replace('${' + 'taskGuid' + '}', String(taskGuid));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'taskGuid' is not null or undefined\n        if (taskGuid === null || taskGuid === undefined) {\n            throw new Error('Required parameter taskGuid was null or undefined when calling importBillImportTaskKickouts.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<GuidResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * This endpoint allows the import of a emission records import file. The file should be a base64-encoded delimited text file with a UTF8 character set.\n     * \n     * @param body DTO containing the data to import and the profile that defines the structure.\n     */\n    public importEmissionRecordsWithProfileWithHttpInfo(body?: RecordImportRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<GuidResponse>> {\n        const path = this.basePath + '/api/v202403/import/record';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<GuidResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * This endpoint allows the import of an ESA reading import file. The file should be a base64-encoded file with a UTF8 character set.\n     * \n     * @param body DTO containing the data to import and the profile that defines the structure.\n     */\n    public importEsaReadingWithProfileWithHttpInfo(body?: EsaReadingImportRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<DetailedGuidResponse>>> {\n        const path = this.basePath + '/api/v202407/import/esareading';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<DetailedGuidResponse>>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * This endpoint allows the import of a channel reading (\\&quot;interval\\&quot;) data import file. The file should be a base64-encoded delimited text file with a UTF8 character set.\n     * \n     * @param body DTO containing the data to export and the profile that defines the structure.\n     */\n    public readingImportWithHttpInfo(body?: ReadingImportRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<GuidResponse>> {\n        const path = this.basePath + '/api/v3/import/reading';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<GuidResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Creates a bill import profile\n     * \n     * @param body The details about the profile being created\n     */\n    public writeBillImportProfileWithHttpInfo(body?: BillImportProfileRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BillImportProfileResponse>> {\n        const path = this.basePath + '/api/v3/import/bill/profile';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BillImportProfileResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { BillActionMoveList } from '../model/billActionMoveList';\nimport { BillDeleteActionResult } from '../model/billDeleteActionResult';\nimport { BillExportOptions } from '../model/billExportOptions';\nimport { BillHeaderUpdate } from '../model/billHeaderUpdate';\nimport { BillUnexportOptions } from '../model/billUnexportOptions';\nimport { ChargebackProcessorSettingsForSplits } from '../model/chargebackProcessorSettingsForSplits';\nimport { ChargebackTaskResponse } from '../model/chargebackTaskResponse';\nimport { DistributeAccountChargesBase } from '../model/distributeAccountChargesBase';\nimport { DynamicListRequest } from '../model/dynamicListRequest';\nimport { FilterEdit } from '../model/filterEdit';\nimport { FilterResponse } from '../model/filterResponse';\nimport { FlagEdit } from '../model/flagEdit';\nimport { FlagIssueEditAction } from '../model/flagIssueEditAction';\nimport { ListActionAccrualExclusion } from '../model/listActionAccrualExclusion';\nimport { ListActionApprove } from '../model/listActionApprove';\nimport { ListActionCustom } from '../model/listActionCustom';\nimport { ListActionExportHold } from '../model/listActionExportHold';\nimport { ListActionReverse } from '../model/listActionReverse';\nimport { ListActionVoid } from '../model/listActionVoid';\nimport { ListColumnEdit } from '../model/listColumnEdit';\nimport { ListCopy } from '../model/listCopy';\nimport { ListCreate } from '../model/listCreate';\nimport { ListCreateResponse } from '../model/listCreateResponse';\nimport { ListEdit } from '../model/listEdit';\nimport { ListResponse } from '../model/listResponse';\nimport { ListResponseListField } from '../model/listResponseListField';\nimport { MoveBillsDestination } from '../model/moveBillsDestination';\nimport { ShareRequest } from '../model/shareRequest';\nimport { ShareResponse } from '../model/shareResponse';\nimport { ToggleVisible } from '../model/toggleVisible';\nimport { UpdateResult } from '../model/updateResult';\nimport { WebhookLogDetailsResponse } from '../model/webhookLogDetailsResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class ListService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Approve/unapprove account bills\n     * \n     * @param accountId The account to approve/unapprove all bills\n     * @param body Boolean representing approve flag\n     */\n    public accountBillListApprove(accountId: number, body?: ListActionApprove, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.accountBillListApproveWithHttpInfo(accountId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Fires a custom bill action on an account bill list. Custom bill actions are setup as webhooks.\n     * \n     * @param accountId The account against which all of its bills will have the custom action performed\n     * @param body \n     */\n    public accountBillListCustomAction(accountId: number, body?: ListActionCustom, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<WebhookLogDetailsResponse> {\n        return this.accountBillListCustomActionWithHttpInfo(accountId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<WebhookLogDetailsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete all bills for account\n     * \n     * @param accountId The account to delete all bills from\n     */\n    public accountBillListDeleteBills(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BillDeleteActionResult> {\n        return this.accountBillListDeleteBillsWithHttpInfo(accountId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BillDeleteActionResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Export list data to excel spreadsheet format\n     * \n     * @param accountId The account to export bills\n     */\n    public accountBillListExcelExport(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.accountBillListExcelExportWithHttpInfo(accountId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Export all account bills to ap or gl Maximum of 10000 bills can be processed at one time.\n     * \n     * @param accountId The account to export all bills\n     * @param body Bill Export Options\n     */\n    public accountBillListExport(accountId: number, body?: BillExportOptions, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.accountBillListExportWithHttpInfo(accountId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Hold/release account bills for export\n     * \n     * @param accountId The account to set the export hold flag on all bills\n     * @param body Boolean representing exportHold flag\n     */\n    public accountBillListExportHold(accountId: number, body?: ListActionExportHold, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.accountBillListExportHoldWithHttpInfo(accountId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Unexport account bills\n     * \n     * @param accountId The account for which to unexport all bills\n     * @param body Value of \\&quot;ap\\&quot; for A/P unexport, or \\&quot;gl\\&quot; for GL unexport\n     */\n    public accountBillListUnexport(accountId: number, body?: BillUnexportOptions, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.accountBillListUnexportWithHttpInfo(accountId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Void/unvoid account bills\n     * \n     * @param accountId The account to void/unvoid all bills\n     * @param body Boolean representing void flag\n     */\n    public accountBillListVoid(accountId: number, body?: ListActionVoid, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.accountBillListVoidWithHttpInfo(accountId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Generate a bill import file from all bills in an account bill list.\n     * \n     * @param accountId The account from which to get all bills\n     */\n    public accountExportHistoricalBillList(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<string> {\n        return this.accountExportHistoricalBillListWithHttpInfo(accountId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<string>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get the account bills list\n     * \n     * @param accountId The account identifier to retrieve bills list for\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public accountList(accountId: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ListResponse> {\n        return this.accountListWithHttpInfo(accountId, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ListResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Approve/unapprove bill list\n     * \n     * @param listId The list identifier\n     * @param body Boolean representing approve flag\n     */\n    public approveBillList(listId: number, body?: ListActionApprove, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.approveBillListWithHttpInfo(listId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Fires a custom bill action on a bill list\n     * \n     * @param listId The bill list against which all of its bills will have the custom action performed\n     * @param body \n     */\n    public billListCustomAction(listId: number, body?: ListActionCustom, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<WebhookLogDetailsResponse> {\n        return this.billListCustomActionWithHttpInfo(listId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<WebhookLogDetailsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get the collection records list\n     * \n     * @param collectionId The collection identifier to retrieve records list for\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public collectionRecordList(collectionId: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ListResponse> {\n        return this.collectionRecordListWithHttpInfo(collectionId, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ListResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Export list data to excel spreadsheet format\n     * \n     * @param collectionId The collection to export records\n     */\n    public collectionRecordListExcelExport(collectionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.collectionRecordListExcelExportWithHttpInfo(collectionId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Create a new list as a copy of an existing list\n     * \n     * @param listId The list identifier of the existing list\n     * @param body The list create properties\n     */\n    public createAndCopyList(listId: number, body?: ListCopy, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ListCreateResponse> {\n        return this.createAndCopyListWithHttpInfo(listId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ListCreateResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Create a new list with default list settings\n     * \n     * @param body The list create properties\n     */\n    public createDefaultList(body?: ListCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ListCreateResponse> {\n        return this.createDefaultListWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ListCreateResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete all bills in a bill list\n     * \n     * @param listId The list identifier\n     */\n    public deleteBillsInBillList(listId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BillDeleteActionResult> {\n        return this.deleteBillsInBillListWithHttpInfo(listId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BillDeleteActionResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete a list. For a list to be deleted you must have created the list or have Manage permission and the list is shared with anyone.\n     * \n     * @param listId The id of the list to delete\n     */\n    public deleteList(listId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteListWithHttpInfo(listId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * For each bill in the provided list which has account-level charges, distribute these account charges amongst the meters on the bill. This is done proportionally by meter use or cost, depending on the split basis. Maximum of 10000 bills can be processed at one time.\n     * \n     * @param listId ID for the list containing bills for which account charges will be distributed to meters\n     * @param body Distribution information\n     */\n    public distributeAccountChargesToMetersForBillsInList(listId: number, body?: DistributeAccountChargesBase, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.distributeAccountChargesToMetersForBillsInListWithHttpInfo(listId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit a list\n     * \n     * @param listId The list identifier of the existing list\n     * @param body The list edit properties\n     */\n    public editList(listId: number, body?: ListEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ListCreateResponse> {\n        return this.editListWithHttpInfo(listId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ListCreateResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit the column definition for the list. For list columns to be edited you must have created the list or have BillListAdministrator Manage permission and the list is shared with anyone or have SharedBillList Edit permission and the list is shared with you.\n     * \n     * @param listId The list identifier\n     * @param body \n     */\n    public editListColumns(listId: number, body?: Array<ListColumnEdit>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<ListResponseListField>> {\n        return this.editListColumnsWithHttpInfo(listId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<ListResponseListField>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Set list filters If a filter exists in the database, but is not passed in it will be deleted. For list filters to be edited you must have created the list or have BillListAdministrator Manage permission and the list is shared with anyone or have SharedBillList Edit permission and the list is shared with you.\n     * \n     * @param listId The list identifier\n     * @param body List of filters being set\n     */\n    public editListFilters(listId: number, body?: Array<FilterEdit>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<FilterResponse>> {\n        return this.editListFiltersWithHttpInfo(listId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<FilterResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Update the shared users and user groups for a list. To remove sharing completely set SharedWithEveryone to false, SharedUserIds to [], and SharedUserGroupIds to []. You must have created the list and have SharedBillLists Create permission or have BillListAdministrator Manage permission or must have created the list and have SharedRecordsLists Create permission or have RecordsListAdministrator Manage permission\n     * \n     * @param listId The list identifier\n     * @param body Users and user groups to share the list with\n     */\n    public editListShare(listId: number, body?: ShareRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ShareResponse> {\n        return this.editListShareWithHttpInfo(listId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ShareResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Update the visibility of a list for the current user. You must have created the list or have access to it.\n     * \n     * @param listId The shared list identifier\n     * @param body Set shared list visibility\n     */\n    public editListShareVisibility(listId: number, body?: ToggleVisible, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ListCreateResponse> {\n        return this.editListShareVisibilityWithHttpInfo(listId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ListCreateResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get the emission source records list\n     * \n     * @param emissionSourceId The emission source identifier to retrieve records list for\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public emissionSourceRecordList(emissionSourceId: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ListResponse> {\n        return this.emissionSourceRecordListWithHttpInfo(emissionSourceId, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ListResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Export list data to excel spreadsheet format\n     * \n     * @param emissionSourceId The emissionSource to export records\n     */\n    public emissionSourceRecordListExcelExport(emissionSourceId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.emissionSourceRecordListExcelExportWithHttpInfo(emissionSourceId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Export all bills in a list to ap or gl Maximum of 10000 bills can be processed at one time.\n     * \n     * @param listId The list identifier\n     * @param body Bill Export Options\n     */\n    public exportBillList(listId: number, body?: BillExportOptions, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.exportBillListWithHttpInfo(listId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Generate a bill import file from bills in a list.\n     * \n     * @param listId The id of the list to get bills from\n     */\n    public exportHistoricalBillList(listId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<string> {\n        return this.exportHistoricalBillListWithHttpInfo(listId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<string>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Hold/release bill list for export\n     * \n     * @param listId The list identifier\n     * @param body Boolean representing exportHold flag\n     */\n    public exportHoldBillList(listId: number, body?: ListActionExportHold, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.exportHoldBillListWithHttpInfo(listId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Create and/or update flags for all bills in a list\n     * \n     * @param listId Bill list containing a list of bills that will have flags created or updated\n     * @param body DTO containing the new state of the flags on each bill in the list\n     */\n    public flagBillListAction(listId: number, body?: FlagEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.flagBillListActionWithHttpInfo(listId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Update flag issuess for all issues in a list\n     * \n     * @param listId Flag Issue list containing a list of flag issues to be updated\n     * @param body DTO containing the new state of the flag Issue on each flag issue in the list\n     */\n    public flagIssueBillListAction(listId: number, body?: FlagIssueEditAction, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.flagIssueBillListActionWithHttpInfo(listId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get the definition and data for a list type\n     * \n     * @param listTypeId The list type for which the definition and data are to be retrieved\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     * @param body DTO containing the list of initial filters to apply and a flag indicating whether to reset the current columns. Only one list of the specified list type exists, so columns and filters are shared for every dynamic list of the list type. Filters provided will be saved to the database.\n     */\n    public getDynamicListWithData(listTypeId: number, pageSize?: number, pageNumber?: number, body?: DynamicListRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ListResponse> {\n        return this.getDynamicListWithDataWithHttpInfo(listTypeId, pageSize, pageNumber, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ListResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get the filters for a list\n     * \n     * @param listId The list for which the filters are to be retrieved\n     */\n    public getListFilters(listId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<FilterResponse>> {\n        return this.getListFiltersWithHttpInfo(listId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<FilterResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get the shared users and user groups for a list. You must have created the list and have SharedBillLists Create permission or have BillListAdministrator Manage permission or must have created the list and have SharedRecordsLists Create permission or have RecordsListAdministrator Manage permission\n     * \n     * @param listId The list identifier\n     */\n    public getListShare(listId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ShareResponse> {\n        return this.getListShareWithHttpInfo(listId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ShareResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get the definition and data for a list. For a list to be returned you must have created the list or have access to it.\n     * \n     * @param listId The list for which the definition and data are to be retrieved\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getListWithData(listId: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ListResponse> {\n        return this.getListWithDataWithHttpInfo(listId, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ListResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get lists. For a list to be returned you must have created the list or have access to it.\n     * \n     * @param listTypeId Type of list\n     */\n    public getLists(listTypeId?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<ListCreateResponse>> {\n        return this.getListsWithHttpInfo(listTypeId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<ListCreateResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves a list of Accounts that contain meters of ALL of the commodities represented by the given Account&#39;s Bill List\n     * \n     * @param accountId A specific Account that should be used for finding matching Accounts (uses all Bills on the Account Bill List).\n     */\n    public getPossibleDestinationAccountsForAccountList(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<MoveBillsDestination> {\n        return this.getPossibleDestinationAccountsForAccountListWithHttpInfo(accountId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<MoveBillsDestination>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves a list of accounts that contain meters of ALL of the commodities represented by the given Bill List\n     * \n     * @param listId A specific Bill List that should be used for finding matching Accounts.\n     */\n    public getPossibleDestinationAccountsForList(listId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<MoveBillsDestination> {\n        return this.getPossibleDestinationAccountsForListWithHttpInfo(listId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<MoveBillsDestination>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Export list data to excel spreadsheet format\n     * \n     * @param listId The list identifier\n     */\n    public listExport(listId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.listExportWithHttpInfo(listId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get the meter bills list\n     * \n     * @param meterId The meter identifier to retrieve bills list for\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public meterBillList(meterId: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ListResponse> {\n        return this.meterBillListWithHttpInfo(meterId, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ListResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Approve/unapprove meter bills\n     * \n     * @param meterId The meter to approve/unapprove all bills\n     * @param body Boolean representing approve flag\n     */\n    public meterBillListApprove(meterId: number, body?: ListActionApprove, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.meterBillListApproveWithHttpInfo(meterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Fires a custom bill action on a meter bill list. Custom bill actions are setup as webhooks\n     * \n     * @param meterId The meter against which all of its bills will have the custom action performed\n     * @param body \n     */\n    public meterBillListCustomAction(meterId: number, body?: ListActionCustom, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<WebhookLogDetailsResponse> {\n        return this.meterBillListCustomActionWithHttpInfo(meterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<WebhookLogDetailsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete all bills for meter\n     * \n     * @param meterId The meter to delete all bills from\n     */\n    public meterBillListDeleteBills(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BillDeleteActionResult> {\n        return this.meterBillListDeleteBillsWithHttpInfo(meterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BillDeleteActionResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Export list data to excel spreadsheet format\n     * \n     * @param meterId The meter to export bills from\n     */\n    public meterBillListExcelExport(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.meterBillListExcelExportWithHttpInfo(meterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Export all meter bills to ap or gl Maximum of 10000 bills can be processed at one time.\n     * \n     * @param meterId The meter to export all bills\n     * @param body Bill Export Options\n     */\n    public meterBillListExport(meterId: number, body?: BillExportOptions, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.meterBillListExportWithHttpInfo(meterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Hold/release meter bills for export\n     * \n     * @param meterId The meter to set the export hold flag on all bills\n     * @param body Boolean representing exportHold flag\n     */\n    public meterBillListExportHold(meterId: number, body?: ListActionExportHold, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.meterBillListExportHoldWithHttpInfo(meterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Unexport meter bills\n     * \n     * @param meterId The meter for which to unexport all bills\n     * @param body Value of \\&quot;ap\\&quot; for A/P unexport, or \\&quot;gl\\&quot; for GL unexport\n     */\n    public meterBillListUnexport(meterId: number, body?: BillUnexportOptions, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.meterBillListUnexportWithHttpInfo(meterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Void/unvoid meter bills\n     * \n     * @param meterId The meter to void/unvoid all bills\n     * @param body Boolean representing void flag\n     */\n    public meterBillListVoid(meterId: number, body?: ListActionVoid, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.meterBillListVoidWithHttpInfo(meterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Generate a bill import file from all bills in a meter bill list.\n     * \n     * @param meterId The meter from which to get all bills\n     */\n    public meterExportHistoricalBillList(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<string> {\n        return this.meterExportHistoricalBillListWithHttpInfo(meterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<string>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     *     Moves the bills from the given Account&#39;s Bill List to the specified destination Account and Meters. Each source Meter      will be matched with a corresponding destination Meter based on commodity. &lt;param name&#x3D;\\&quot;accountId\\&quot;&gt;     Account for the Bill List containing a list of bills that should be moved. All bills from this Account&#39;s Bill List will be moved. &lt;/param&gt;&lt;param name&#x3D;\\&quot;dto\\&quot;&gt;     DTO containing the destination Account Id, the destination AcountMeter Ids, a flag indicating whether the Account GL      information should be updated, a flag indicating whether the Meter GL information should be updated,     and a flag indicating whether linked emissions record scope and GHG factors should be updated.     WARNING: If emissions record scope categories and GHG factors are updated, any notes and/or attachments on those emissions records will be lost. &lt;/param&gt;\n     * \n     * @param accountId \n     * @param body \n     */\n    public moveBillsToAccountFromAccountList(accountId: number, body?: BillActionMoveList, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.moveBillsToAccountFromAccountListWithHttpInfo(accountId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     *     Moves the bills from the given Bill List to the specified destination Account and Meters. Each source Meter will be matched with      a corresponding destination Meter based on commodity. &lt;param name&#x3D;\\&quot;listId\\&quot;&gt;     Bill List containing a list of bills that should be moved. All bills from this list will be moved. &lt;/param&gt;&lt;param name&#x3D;\\&quot;dto\\&quot;&gt;     DTO containing the destination Account Id, the destination AcountMeter Ids, a flag indicating whether the Account GL      information should be updated, a flag indicating whether the Meter GL information should be updated,     and a flag indicating whether linked emissions record scope and GHG factors should be updated.     WARNING: If emissions record scope categories and GHG factors are updated, any notes and/or attachments on those emissions records will be lost. &lt;/param&gt;\n     * \n     * @param listId \n     * @param body \n     */\n    public moveBillsToAccountFromList(listId: number, body?: BillActionMoveList, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.moveBillsToAccountFromListWithHttpInfo(listId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Reset a list to its default columns and filters. For a list to be reset you must have created the list or have BillListAdministrator Manage permission and the list is shared with anyone or have SharedBillList Edit permission and the list is shared with you.\n     * \n     * @param listId The list identifier\n     */\n    public resetList(listId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.resetListWithHttpInfo(listId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Reverses all bills on an account bill list\n     * \n     * @param accountId The account that all bills will be reversed on\n     * @param body Batch settings for the reversed bills. If not provided, bills will be placed in the currently open batch.\n     */\n    public reverseAccountBillList(accountId: number, body?: ListActionReverse, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.reverseAccountBillListWithHttpInfo(accountId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Reverses all bills on a bill list\n     * \n     * @param listId The bill list that all bills will be reversed on\n     * @param body Batch settings for the reversed bill. If not provided, bills will be placed in the currently open batch.\n     */\n    public reverseBillList(listId: number, body?: ListActionReverse, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.reverseBillListWithHttpInfo(listId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Reverses all bills on a meter bill list\n     * \n     * @param meterId The meter that all bills will be reversed on\n     * @param body Batch settings for the reversed bills. If not provided, bills will be placed in the currently open batch.\n     */\n    public reverseMeterBillList(meterId: number, body?: ListActionReverse, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.reverseMeterBillListWithHttpInfo(meterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Excludes or undoes exclusion of bills from accruals\n     * \n     * @param accountId The account whose bills will be excluded or have exclusion undone\n     * @param body Indicates whether or not the bills should be excluded from accruals or should have exclusion undone\n     */\n    public setAccountBillListAccrualExclusion(accountId: number, body?: ListActionAccrualExclusion, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.setAccountBillListAccrualExclusionWithHttpInfo(accountId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Excludes or undoes exclusion of bills from accruals\n     * \n     * @param listId The list whose bills will be excluded or have exclusion undone\n     * @param body Indicates whether or not the provided list should be excluded from accruals or should have exclusion undone\n     */\n    public setBillListAccrualExclusion(listId: number, body?: ListActionAccrualExclusion, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.setBillListAccrualExclusionWithHttpInfo(listId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Excludes or undoes exclusion of bills from accruals\n     * \n     * @param meterId The meter whose bills will be excluded or have exclusion undone\n     * @param body Indicates whether or not the bills should be excluded from accruals or should have exclusion undone\n     */\n    public setMeterBillListAccrualExclusion(meterId: number, body?: ListActionAccrualExclusion, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.setMeterBillListAccrualExclusionWithHttpInfo(meterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Split all bills eligible to be split in a bill list\n     * \n     * @param listId The list identifier\n     * @param body Optional note and batch settings can be provided. Batch Settings will allow custom batchcode and bill headers for the destination bills\n     */\n    public splitBillList(listId: number, body?: ChargebackProcessorSettingsForSplits, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ChargebackTaskResponse> {\n        return this.splitBillListWithHttpInfo(listId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ChargebackTaskResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Unexport bill list\n     * \n     * @param listId The list identifier\n     * @param body Value of \\&quot;ap\\&quot; for A/P unexport, or \\&quot;gl\\&quot; for GL unexport\n     */\n    public unexportBillList(listId: number, body?: BillUnexportOptions, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.unexportBillListWithHttpInfo(listId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Updates bill headers for the bills for an account&#39;s bill list Audits won&#39;t be fired\n     * \n     * @param accountId The account whose bills will have header updates applied\n     * @param body Indicates which headers need to be updated\n     */\n    public updateAccountBillListHeaders(accountId: number, body?: BillHeaderUpdate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.updateAccountBillListHeadersWithHttpInfo(accountId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Update all headers for a bill list If a new begin date or end date is being set, bills that would have end dates on or before their begin date will not be updated If the user does not have permission to edit exported or approved bills, those bills will not be updated Bills audits won&#39;t be fired\n     * \n     * @param listId The list identifier\n     * @param body Bill list header update action\n     */\n    public updateBillListHeaders(listId: number, body?: BillHeaderUpdate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.updateBillListHeadersWithHttpInfo(listId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Updates bill headers for all bills on a meter bill list Audits won&#39;t be fired\n     * \n     * @param meterId The meter whose bills will have header updates applied\n     * @param body Indicates which headers need to be updated\n     */\n    public updateMeterBillListHeaders(meterId: number, body?: BillHeaderUpdate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.updateMeterBillListHeadersWithHttpInfo(meterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Void/unvoid bill list\n     * \n     * @param listId The list identifier\n     * @param body Boolean representing void flag\n     */\n    public voidBillList(listId: number, body?: ListActionVoid, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.voidBillListWithHttpInfo(listId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Approve/unapprove account bills\n     * \n     * @param accountId The account to approve/unapprove all bills\n     * @param body Boolean representing approve flag\n     */\n    public accountBillListApproveWithHttpInfo(accountId: number, body?: ListActionApprove, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/list/bill/approve'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling accountBillListApprove.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Fires a custom bill action on an account bill list. Custom bill actions are setup as webhooks.\n     * \n     * @param accountId The account against which all of its bills will have the custom action performed\n     * @param body \n     */\n    public accountBillListCustomActionWithHttpInfo(accountId: number, body?: ListActionCustom, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<WebhookLogDetailsResponse>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/list/bill/customAction'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling accountBillListCustomAction.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<WebhookLogDetailsResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Delete all bills for account\n     * \n     * @param accountId The account to delete all bills from\n     */\n    public accountBillListDeleteBillsWithHttpInfo(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BillDeleteActionResult>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/list/bill/data'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling accountBillListDeleteBills.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BillDeleteActionResult>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Export list data to excel spreadsheet format\n     * \n     * @param accountId The account to export bills\n     */\n    public accountBillListExcelExportWithHttpInfo(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/list/bill/excelexport'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling accountBillListExcelExport.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Export all account bills to ap or gl Maximum of 10000 bills can be processed at one time.\n     * \n     * @param accountId The account to export all bills\n     * @param body Bill Export Options\n     */\n    public accountBillListExportWithHttpInfo(accountId: number, body?: BillExportOptions, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/list/bill/export'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling accountBillListExport.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Hold/release account bills for export\n     * \n     * @param accountId The account to set the export hold flag on all bills\n     * @param body Boolean representing exportHold flag\n     */\n    public accountBillListExportHoldWithHttpInfo(accountId: number, body?: ListActionExportHold, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/list/bill/exporthold'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling accountBillListExportHold.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Unexport account bills\n     * \n     * @param accountId The account for which to unexport all bills\n     * @param body Value of \\&quot;ap\\&quot; for A/P unexport, or \\&quot;gl\\&quot; for GL unexport\n     */\n    public accountBillListUnexportWithHttpInfo(accountId: number, body?: BillUnexportOptions, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/list/bill/unexport'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling accountBillListUnexport.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Void/unvoid account bills\n     * \n     * @param accountId The account to void/unvoid all bills\n     * @param body Boolean representing void flag\n     */\n    public accountBillListVoidWithHttpInfo(accountId: number, body?: ListActionVoid, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/list/bill/void'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling accountBillListVoid.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Generate a bill import file from all bills in an account bill list.\n     * \n     * @param accountId The account from which to get all bills\n     */\n    public accountExportHistoricalBillListWithHttpInfo(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<string>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/list/bill/generateimport'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling accountExportHistoricalBillList.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<string>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Get the account bills list\n     * \n     * @param accountId The account identifier to retrieve bills list for\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public accountListWithHttpInfo(accountId: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ListResponse>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/list/bill'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling accountList.');\n        }\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ListResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Approve/unapprove bill list\n     * \n     * @param listId The list identifier\n     * @param body Boolean representing approve flag\n     */\n    public approveBillListWithHttpInfo(listId: number, body?: ListActionApprove, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/list/${listId}/approve'\n                    .replace('${' + 'listId' + '}', String(listId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'listId' is not null or undefined\n        if (listId === null || listId === undefined) {\n            throw new Error('Required parameter listId was null or undefined when calling approveBillList.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Fires a custom bill action on a bill list\n     * \n     * @param listId The bill list against which all of its bills will have the custom action performed\n     * @param body \n     */\n    public billListCustomActionWithHttpInfo(listId: number, body?: ListActionCustom, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<WebhookLogDetailsResponse>> {\n        const path = this.basePath + '/api/v3/list/${listId}/customAction'\n                    .replace('${' + 'listId' + '}', String(listId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'listId' is not null or undefined\n        if (listId === null || listId === undefined) {\n            throw new Error('Required parameter listId was null or undefined when calling billListCustomAction.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<WebhookLogDetailsResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Get the collection records list\n     * \n     * @param collectionId The collection identifier to retrieve records list for\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public collectionRecordListWithHttpInfo(collectionId: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ListResponse>> {\n        const path = this.basePath + '/api/v3/collection/${collectionId}/list/record'\n                    .replace('${' + 'collectionId' + '}', String(collectionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'collectionId' is not null or undefined\n        if (collectionId === null || collectionId === undefined) {\n            throw new Error('Required parameter collectionId was null or undefined when calling collectionRecordList.');\n        }\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ListResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Export list data to excel spreadsheet format\n     * \n     * @param collectionId The collection to export records\n     */\n    public collectionRecordListExcelExportWithHttpInfo(collectionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/collection/${collectionId}/list/record/excelexport'\n                    .replace('${' + 'collectionId' + '}', String(collectionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'collectionId' is not null or undefined\n        if (collectionId === null || collectionId === undefined) {\n            throw new Error('Required parameter collectionId was null or undefined when calling collectionRecordListExcelExport.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Create a new list as a copy of an existing list\n     * \n     * @param listId The list identifier of the existing list\n     * @param body The list create properties\n     */\n    public createAndCopyListWithHttpInfo(listId: number, body?: ListCopy, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ListCreateResponse>> {\n        const path = this.basePath + '/api/v3/list/${listId}'\n                    .replace('${' + 'listId' + '}', String(listId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'listId' is not null or undefined\n        if (listId === null || listId === undefined) {\n            throw new Error('Required parameter listId was null or undefined when calling createAndCopyList.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ListCreateResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Create a new list with default list settings\n     * \n     * @param body The list create properties\n     */\n    public createDefaultListWithHttpInfo(body?: ListCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ListCreateResponse>> {\n        const path = this.basePath + '/api/v3/list';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ListCreateResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Delete all bills in a bill list\n     * \n     * @param listId The list identifier\n     */\n    public deleteBillsInBillListWithHttpInfo(listId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BillDeleteActionResult>> {\n        const path = this.basePath + '/api/v3/list/${listId}/data'\n                    .replace('${' + 'listId' + '}', String(listId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'listId' is not null or undefined\n        if (listId === null || listId === undefined) {\n            throw new Error('Required parameter listId was null or undefined when calling deleteBillsInBillList.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BillDeleteActionResult>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Delete a list. For a list to be deleted you must have created the list or have Manage permission and the list is shared with anyone.\n     * \n     * @param listId The id of the list to delete\n     */\n    public deleteListWithHttpInfo(listId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/list/${listId}'\n                    .replace('${' + 'listId' + '}', String(listId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'listId' is not null or undefined\n        if (listId === null || listId === undefined) {\n            throw new Error('Required parameter listId was null or undefined when calling deleteList.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * For each bill in the provided list which has account-level charges, distribute these account charges amongst the meters on the bill. This is done proportionally by meter use or cost, depending on the split basis. Maximum of 10000 bills can be processed at one time.\n     * \n     * @param listId ID for the list containing bills for which account charges will be distributed to meters\n     * @param body Distribution information\n     */\n    public distributeAccountChargesToMetersForBillsInListWithHttpInfo(listId: number, body?: DistributeAccountChargesBase, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v202104/list/${listId}/distributeAccountCharges'\n                    .replace('${' + 'listId' + '}', String(listId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'listId' is not null or undefined\n        if (listId === null || listId === undefined) {\n            throw new Error('Required parameter listId was null or undefined when calling distributeAccountChargesToMetersForBillsInList.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edit a list\n     * \n     * @param listId The list identifier of the existing list\n     * @param body The list edit properties\n     */\n    public editListWithHttpInfo(listId: number, body?: ListEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ListCreateResponse>> {\n        const path = this.basePath + '/api/v3/list/${listId}'\n                    .replace('${' + 'listId' + '}', String(listId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'listId' is not null or undefined\n        if (listId === null || listId === undefined) {\n            throw new Error('Required parameter listId was null or undefined when calling editList.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ListCreateResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edit the column definition for the list. For list columns to be edited you must have created the list or have BillListAdministrator Manage permission and the list is shared with anyone or have SharedBillList Edit permission and the list is shared with you.\n     * \n     * @param listId The list identifier\n     * @param body \n     */\n    public editListColumnsWithHttpInfo(listId: number, body?: Array<ListColumnEdit>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<ListResponseListField>>> {\n        const path = this.basePath + '/api/v3/list/${listId}/column'\n                    .replace('${' + 'listId' + '}', String(listId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'listId' is not null or undefined\n        if (listId === null || listId === undefined) {\n            throw new Error('Required parameter listId was null or undefined when calling editListColumns.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<ListResponseListField>>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Set list filters If a filter exists in the database, but is not passed in it will be deleted. For list filters to be edited you must have created the list or have BillListAdministrator Manage permission and the list is shared with anyone or have SharedBillList Edit permission and the list is shared with you.\n     * \n     * @param listId The list identifier\n     * @param body List of filters being set\n     */\n    public editListFiltersWithHttpInfo(listId: number, body?: Array<FilterEdit>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<FilterResponse>>> {\n        const path = this.basePath + '/api/v3/list/${listId}/filter'\n                    .replace('${' + 'listId' + '}', String(listId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'listId' is not null or undefined\n        if (listId === null || listId === undefined) {\n            throw new Error('Required parameter listId was null or undefined when calling editListFilters.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<FilterResponse>>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Update the shared users and user groups for a list. To remove sharing completely set SharedWithEveryone to false, SharedUserIds to [], and SharedUserGroupIds to []. You must have created the list and have SharedBillLists Create permission or have BillListAdministrator Manage permission or must have created the list and have SharedRecordsLists Create permission or have RecordsListAdministrator Manage permission\n     * \n     * @param listId The list identifier\n     * @param body Users and user groups to share the list with\n     */\n    public editListShareWithHttpInfo(listId: number, body?: ShareRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ShareResponse>> {\n        const path = this.basePath + '/api/v3/list/${listId}/share'\n                    .replace('${' + 'listId' + '}', String(listId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'listId' is not null or undefined\n        if (listId === null || listId === undefined) {\n            throw new Error('Required parameter listId was null or undefined when calling editListShare.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ShareResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Update the visibility of a list for the current user. You must have created the list or have access to it.\n     * \n     * @param listId The shared list identifier\n     * @param body Set shared list visibility\n     */\n    public editListShareVisibilityWithHttpInfo(listId: number, body?: ToggleVisible, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ListCreateResponse>> {\n        const path = this.basePath + '/api/v3/list/${listId}/visible'\n                    .replace('${' + 'listId' + '}', String(listId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'listId' is not null or undefined\n        if (listId === null || listId === undefined) {\n            throw new Error('Required parameter listId was null or undefined when calling editListShareVisibility.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ListCreateResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Get the emission source records list\n     * \n     * @param emissionSourceId The emission source identifier to retrieve records list for\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public emissionSourceRecordListWithHttpInfo(emissionSourceId: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ListResponse>> {\n        const path = this.basePath + '/api/v3/emissionSource/${emissionSourceId}/list/record'\n                    .replace('${' + 'emissionSourceId' + '}', String(emissionSourceId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'emissionSourceId' is not null or undefined\n        if (emissionSourceId === null || emissionSourceId === undefined) {\n            throw new Error('Required parameter emissionSourceId was null or undefined when calling emissionSourceRecordList.');\n        }\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ListResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Export list data to excel spreadsheet format\n     * \n     * @param emissionSourceId The emissionSource to export records\n     */\n    public emissionSourceRecordListExcelExportWithHttpInfo(emissionSourceId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/emissionSource/${emissionSourceId}/list/record/excelexport'\n                    .replace('${' + 'emissionSourceId' + '}', String(emissionSourceId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'emissionSourceId' is not null or undefined\n        if (emissionSourceId === null || emissionSourceId === undefined) {\n            throw new Error('Required parameter emissionSourceId was null or undefined when calling emissionSourceRecordListExcelExport.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Export all bills in a list to ap or gl Maximum of 10000 bills can be processed at one time.\n     * \n     * @param listId The list identifier\n     * @param body Bill Export Options\n     */\n    public exportBillListWithHttpInfo(listId: number, body?: BillExportOptions, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/list/${listId}/export'\n                    .replace('${' + 'listId' + '}', String(listId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'listId' is not null or undefined\n        if (listId === null || listId === undefined) {\n            throw new Error('Required parameter listId was null or undefined when calling exportBillList.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Generate a bill import file from bills in a list.\n     * \n     * @param listId The id of the list to get bills from\n     */\n    public exportHistoricalBillListWithHttpInfo(listId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<string>> {\n        const path = this.basePath + '/api/v3/list/${listId}/bill/generateimport'\n                    .replace('${' + 'listId' + '}', String(listId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'listId' is not null or undefined\n        if (listId === null || listId === undefined) {\n            throw new Error('Required parameter listId was null or undefined when calling exportHistoricalBillList.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<string>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Hold/release bill list for export\n     * \n     * @param listId The list identifier\n     * @param body Boolean representing exportHold flag\n     */\n    public exportHoldBillListWithHttpInfo(listId: number, body?: ListActionExportHold, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/list/${listId}/exporthold'\n                    .replace('${' + 'listId' + '}', String(listId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'listId' is not null or undefined\n        if (listId === null || listId === undefined) {\n            throw new Error('Required parameter listId was null or undefined when calling exportHoldBillList.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Create and/or update flags for all bills in a list\n     * \n     * @param listId Bill list containing a list of bills that will have flags created or updated\n     * @param body DTO containing the new state of the flags on each bill in the list\n     */\n    public flagBillListActionWithHttpInfo(listId: number, body?: FlagEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/list/${listId}/flagAction'\n                    .replace('${' + 'listId' + '}', String(listId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'listId' is not null or undefined\n        if (listId === null || listId === undefined) {\n            throw new Error('Required parameter listId was null or undefined when calling flagBillListAction.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Update flag issuess for all issues in a list\n     * \n     * @param listId Flag Issue list containing a list of flag issues to be updated\n     * @param body DTO containing the new state of the flag Issue on each flag issue in the list\n     */\n    public flagIssueBillListActionWithHttpInfo(listId: number, body?: FlagIssueEditAction, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/V202502/list/${listId}/flagIssueAction'\n                    .replace('${' + 'listId' + '}', String(listId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'listId' is not null or undefined\n        if (listId === null || listId === undefined) {\n            throw new Error('Required parameter listId was null or undefined when calling flagIssueBillListAction.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Get the definition and data for a list type\n     * \n     * @param listTypeId The list type for which the definition and data are to be retrieved\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     * @param body DTO containing the list of initial filters to apply and a flag indicating whether to reset the current columns. Only one list of the specified list type exists, so columns and filters are shared for every dynamic list of the list type. Filters provided will be saved to the database.\n     */\n    public getDynamicListWithDataWithHttpInfo(listTypeId: number, pageSize?: number, pageNumber?: number, body?: DynamicListRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ListResponse>> {\n        const path = this.basePath + '/api/v3/dynamiclist/${listTypeId}'\n                    .replace('${' + 'listTypeId' + '}', String(listTypeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'listTypeId' is not null or undefined\n        if (listTypeId === null || listTypeId === undefined) {\n            throw new Error('Required parameter listTypeId was null or undefined when calling getDynamicListWithData.');\n        }\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ListResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Get the filters for a list\n     * \n     * @param listId The list for which the filters are to be retrieved\n     */\n    public getListFiltersWithHttpInfo(listId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<FilterResponse>>> {\n        const path = this.basePath + '/api/v3/list/${listId}/filter'\n                    .replace('${' + 'listId' + '}', String(listId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'listId' is not null or undefined\n        if (listId === null || listId === undefined) {\n            throw new Error('Required parameter listId was null or undefined when calling getListFilters.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<FilterResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get the shared users and user groups for a list. You must have created the list and have SharedBillLists Create permission or have BillListAdministrator Manage permission or must have created the list and have SharedRecordsLists Create permission or have RecordsListAdministrator Manage permission\n     * \n     * @param listId The list identifier\n     */\n    public getListShareWithHttpInfo(listId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ShareResponse>> {\n        const path = this.basePath + '/api/v3/list/${listId}/share'\n                    .replace('${' + 'listId' + '}', String(listId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'listId' is not null or undefined\n        if (listId === null || listId === undefined) {\n            throw new Error('Required parameter listId was null or undefined when calling getListShare.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ShareResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get the definition and data for a list. For a list to be returned you must have created the list or have access to it.\n     * \n     * @param listId The list for which the definition and data are to be retrieved\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getListWithDataWithHttpInfo(listId: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ListResponse>> {\n        const path = this.basePath + '/api/v3/list/${listId}/data'\n                    .replace('${' + 'listId' + '}', String(listId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'listId' is not null or undefined\n        if (listId === null || listId === undefined) {\n            throw new Error('Required parameter listId was null or undefined when calling getListWithData.');\n        }\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ListResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get lists. For a list to be returned you must have created the list or have access to it.\n     * \n     * @param listTypeId Type of list\n     */\n    public getListsWithHttpInfo(listTypeId?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<ListCreateResponse>>> {\n        const path = this.basePath + '/api/v3/list';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (listTypeId !== undefined) {\n            queryParameters = queryParameters.set('listTypeId', <any>listTypeId);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<ListCreateResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves a list of Accounts that contain meters of ALL of the commodities represented by the given Account&#39;s Bill List\n     * \n     * @param accountId A specific Account that should be used for finding matching Accounts (uses all Bills on the Account Bill List).\n     */\n    public getPossibleDestinationAccountsForAccountListWithHttpInfo(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<MoveBillsDestination>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/list/bill/possibleDestinationAccounts'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling getPossibleDestinationAccountsForAccountList.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<MoveBillsDestination>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Retrieves a list of accounts that contain meters of ALL of the commodities represented by the given Bill List\n     * \n     * @param listId A specific Bill List that should be used for finding matching Accounts.\n     */\n    public getPossibleDestinationAccountsForListWithHttpInfo(listId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<MoveBillsDestination>> {\n        const path = this.basePath + '/api/v3/list/${listId}/possibleDestinationAccounts'\n                    .replace('${' + 'listId' + '}', String(listId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'listId' is not null or undefined\n        if (listId === null || listId === undefined) {\n            throw new Error('Required parameter listId was null or undefined when calling getPossibleDestinationAccountsForList.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<MoveBillsDestination>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Export list data to excel spreadsheet format\n     * \n     * @param listId The list identifier\n     */\n    public listExportWithHttpInfo(listId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/list/${listId}/data/excelexport'\n                    .replace('${' + 'listId' + '}', String(listId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'listId' is not null or undefined\n        if (listId === null || listId === undefined) {\n            throw new Error('Required parameter listId was null or undefined when calling listExport.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get the meter bills list\n     * \n     * @param meterId The meter identifier to retrieve bills list for\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public meterBillListWithHttpInfo(meterId: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ListResponse>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/list/bill'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling meterBillList.');\n        }\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ListResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Approve/unapprove meter bills\n     * \n     * @param meterId The meter to approve/unapprove all bills\n     * @param body Boolean representing approve flag\n     */\n    public meterBillListApproveWithHttpInfo(meterId: number, body?: ListActionApprove, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/list/bill/approve'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling meterBillListApprove.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Fires a custom bill action on a meter bill list. Custom bill actions are setup as webhooks\n     * \n     * @param meterId The meter against which all of its bills will have the custom action performed\n     * @param body \n     */\n    public meterBillListCustomActionWithHttpInfo(meterId: number, body?: ListActionCustom, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<WebhookLogDetailsResponse>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/list/bill/customAction'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling meterBillListCustomAction.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<WebhookLogDetailsResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Delete all bills for meter\n     * \n     * @param meterId The meter to delete all bills from\n     */\n    public meterBillListDeleteBillsWithHttpInfo(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BillDeleteActionResult>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/list/bill/data'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling meterBillListDeleteBills.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BillDeleteActionResult>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Export list data to excel spreadsheet format\n     * \n     * @param meterId The meter to export bills from\n     */\n    public meterBillListExcelExportWithHttpInfo(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/list/bill/excelexport'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling meterBillListExcelExport.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Export all meter bills to ap or gl Maximum of 10000 bills can be processed at one time.\n     * \n     * @param meterId The meter to export all bills\n     * @param body Bill Export Options\n     */\n    public meterBillListExportWithHttpInfo(meterId: number, body?: BillExportOptions, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/list/bill/export'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling meterBillListExport.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Hold/release meter bills for export\n     * \n     * @param meterId The meter to set the export hold flag on all bills\n     * @param body Boolean representing exportHold flag\n     */\n    public meterBillListExportHoldWithHttpInfo(meterId: number, body?: ListActionExportHold, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/list/bill/exporthold'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling meterBillListExportHold.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Unexport meter bills\n     * \n     * @param meterId The meter for which to unexport all bills\n     * @param body Value of \\&quot;ap\\&quot; for A/P unexport, or \\&quot;gl\\&quot; for GL unexport\n     */\n    public meterBillListUnexportWithHttpInfo(meterId: number, body?: BillUnexportOptions, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/list/bill/unexport'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling meterBillListUnexport.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Void/unvoid meter bills\n     * \n     * @param meterId The meter to void/unvoid all bills\n     * @param body Boolean representing void flag\n     */\n    public meterBillListVoidWithHttpInfo(meterId: number, body?: ListActionVoid, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/list/bill/void'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling meterBillListVoid.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Generate a bill import file from all bills in a meter bill list.\n     * \n     * @param meterId The meter from which to get all bills\n     */\n    public meterExportHistoricalBillListWithHttpInfo(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<string>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/list/bill/generateimport'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling meterExportHistoricalBillList.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<string>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     *     Moves the bills from the given Account&#39;s Bill List to the specified destination Account and Meters. Each source Meter      will be matched with a corresponding destination Meter based on commodity. &lt;param name&#x3D;\\&quot;accountId\\&quot;&gt;     Account for the Bill List containing a list of bills that should be moved. All bills from this Account&#39;s Bill List will be moved. &lt;/param&gt;&lt;param name&#x3D;\\&quot;dto\\&quot;&gt;     DTO containing the destination Account Id, the destination AcountMeter Ids, a flag indicating whether the Account GL      information should be updated, a flag indicating whether the Meter GL information should be updated,     and a flag indicating whether linked emissions record scope and GHG factors should be updated.     WARNING: If emissions record scope categories and GHG factors are updated, any notes and/or attachments on those emissions records will be lost. &lt;/param&gt;\n     * \n     * @param accountId \n     * @param body \n     */\n    public moveBillsToAccountFromAccountListWithHttpInfo(accountId: number, body?: BillActionMoveList, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/list/bill/moveBills'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling moveBillsToAccountFromAccountList.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     *     Moves the bills from the given Bill List to the specified destination Account and Meters. Each source Meter will be matched with      a corresponding destination Meter based on commodity. &lt;param name&#x3D;\\&quot;listId\\&quot;&gt;     Bill List containing a list of bills that should be moved. All bills from this list will be moved. &lt;/param&gt;&lt;param name&#x3D;\\&quot;dto\\&quot;&gt;     DTO containing the destination Account Id, the destination AcountMeter Ids, a flag indicating whether the Account GL      information should be updated, a flag indicating whether the Meter GL information should be updated,     and a flag indicating whether linked emissions record scope and GHG factors should be updated.     WARNING: If emissions record scope categories and GHG factors are updated, any notes and/or attachments on those emissions records will be lost. &lt;/param&gt;\n     * \n     * @param listId \n     * @param body \n     */\n    public moveBillsToAccountFromListWithHttpInfo(listId: number, body?: BillActionMoveList, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/list/${listId}/moveBills'\n                    .replace('${' + 'listId' + '}', String(listId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'listId' is not null or undefined\n        if (listId === null || listId === undefined) {\n            throw new Error('Required parameter listId was null or undefined when calling moveBillsToAccountFromList.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Reset a list to its default columns and filters. For a list to be reset you must have created the list or have BillListAdministrator Manage permission and the list is shared with anyone or have SharedBillList Edit permission and the list is shared with you.\n     * \n     * @param listId The list identifier\n     */\n    public resetListWithHttpInfo(listId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/list/${listId}/reset'\n                    .replace('${' + 'listId' + '}', String(listId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'listId' is not null or undefined\n        if (listId === null || listId === undefined) {\n            throw new Error('Required parameter listId was null or undefined when calling resetList.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Reverses all bills on an account bill list\n     * \n     * @param accountId The account that all bills will be reversed on\n     * @param body Batch settings for the reversed bills. If not provided, bills will be placed in the currently open batch.\n     */\n    public reverseAccountBillListWithHttpInfo(accountId: number, body?: ListActionReverse, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/list/bill/reverse'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling reverseAccountBillList.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Reverses all bills on a bill list\n     * \n     * @param listId The bill list that all bills will be reversed on\n     * @param body Batch settings for the reversed bill. If not provided, bills will be placed in the currently open batch.\n     */\n    public reverseBillListWithHttpInfo(listId: number, body?: ListActionReverse, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/list/${listId}/reverse'\n                    .replace('${' + 'listId' + '}', String(listId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'listId' is not null or undefined\n        if (listId === null || listId === undefined) {\n            throw new Error('Required parameter listId was null or undefined when calling reverseBillList.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Reverses all bills on a meter bill list\n     * \n     * @param meterId The meter that all bills will be reversed on\n     * @param body Batch settings for the reversed bills. If not provided, bills will be placed in the currently open batch.\n     */\n    public reverseMeterBillListWithHttpInfo(meterId: number, body?: ListActionReverse, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/list/bill/reverse'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling reverseMeterBillList.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Excludes or undoes exclusion of bills from accruals\n     * \n     * @param accountId The account whose bills will be excluded or have exclusion undone\n     * @param body Indicates whether or not the bills should be excluded from accruals or should have exclusion undone\n     */\n    public setAccountBillListAccrualExclusionWithHttpInfo(accountId: number, body?: ListActionAccrualExclusion, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/list/bill/accrualExclusion'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling setAccountBillListAccrualExclusion.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Excludes or undoes exclusion of bills from accruals\n     * \n     * @param listId The list whose bills will be excluded or have exclusion undone\n     * @param body Indicates whether or not the provided list should be excluded from accruals or should have exclusion undone\n     */\n    public setBillListAccrualExclusionWithHttpInfo(listId: number, body?: ListActionAccrualExclusion, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/list/${listId}/accrualExclusion'\n                    .replace('${' + 'listId' + '}', String(listId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'listId' is not null or undefined\n        if (listId === null || listId === undefined) {\n            throw new Error('Required parameter listId was null or undefined when calling setBillListAccrualExclusion.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Excludes or undoes exclusion of bills from accruals\n     * \n     * @param meterId The meter whose bills will be excluded or have exclusion undone\n     * @param body Indicates whether or not the bills should be excluded from accruals or should have exclusion undone\n     */\n    public setMeterBillListAccrualExclusionWithHttpInfo(meterId: number, body?: ListActionAccrualExclusion, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/list/bill/accrualExclusion'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling setMeterBillListAccrualExclusion.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Split all bills eligible to be split in a bill list\n     * \n     * @param listId The list identifier\n     * @param body Optional note and batch settings can be provided. Batch Settings will allow custom batchcode and bill headers for the destination bills\n     */\n    public splitBillListWithHttpInfo(listId: number, body?: ChargebackProcessorSettingsForSplits, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ChargebackTaskResponse>> {\n        const path = this.basePath + '/api/v3/list/${listId}/split'\n                    .replace('${' + 'listId' + '}', String(listId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'listId' is not null or undefined\n        if (listId === null || listId === undefined) {\n            throw new Error('Required parameter listId was null or undefined when calling splitBillList.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ChargebackTaskResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Unexport bill list\n     * \n     * @param listId The list identifier\n     * @param body Value of \\&quot;ap\\&quot; for A/P unexport, or \\&quot;gl\\&quot; for GL unexport\n     */\n    public unexportBillListWithHttpInfo(listId: number, body?: BillUnexportOptions, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/list/${listId}/unexport'\n                    .replace('${' + 'listId' + '}', String(listId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'listId' is not null or undefined\n        if (listId === null || listId === undefined) {\n            throw new Error('Required parameter listId was null or undefined when calling unexportBillList.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Updates bill headers for the bills for an account&#39;s bill list Audits won&#39;t be fired\n     * \n     * @param accountId The account whose bills will have header updates applied\n     * @param body Indicates which headers need to be updated\n     */\n    public updateAccountBillListHeadersWithHttpInfo(accountId: number, body?: BillHeaderUpdate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/list/bill/billHeaders'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling updateAccountBillListHeaders.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Update all headers for a bill list If a new begin date or end date is being set, bills that would have end dates on or before their begin date will not be updated If the user does not have permission to edit exported or approved bills, those bills will not be updated Bills audits won&#39;t be fired\n     * \n     * @param listId The list identifier\n     * @param body Bill list header update action\n     */\n    public updateBillListHeadersWithHttpInfo(listId: number, body?: BillHeaderUpdate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/list/${listId}/billHeaders'\n                    .replace('${' + 'listId' + '}', String(listId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'listId' is not null or undefined\n        if (listId === null || listId === undefined) {\n            throw new Error('Required parameter listId was null or undefined when calling updateBillListHeaders.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Updates bill headers for all bills on a meter bill list Audits won&#39;t be fired\n     * \n     * @param meterId The meter whose bills will have header updates applied\n     * @param body Indicates which headers need to be updated\n     */\n    public updateMeterBillListHeadersWithHttpInfo(meterId: number, body?: BillHeaderUpdate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/list/bill/billHeaders'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling updateMeterBillListHeaders.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Void/unvoid bill list\n     * \n     * @param listId The list identifier\n     * @param body Boolean representing void flag\n     */\n    public voidBillListWithHttpInfo(listId: number, body?: ListActionVoid, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/list/${listId}/void'\n                    .replace('${' + 'listId' + '}', String(listId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'listId' is not null or undefined\n        if (listId === null || listId === undefined) {\n            throw new Error('Required parameter listId was null or undefined when calling voidBillList.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { Me } from '../model/me';\nimport { MeRequest } from '../model/meRequest';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class MeService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Initial session starting point. Support authorization via a api key, bearer token, or session cookie\n     * \n     */\n    public me(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Me> {\n        return this.meWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Me>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * \n     * \n     * @param body \n     */\n    public updateMe(body?: MeRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Me> {\n        return this.updateMeWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Me>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Run all actions that happen before login such as system upgrades and report installation by default to provide maximum compatibility with  the latest application code.\n     * \n     * @param upgradesOnly Set to true to limit to only system data upgrades which improves performance  but may not guarantee maximum compatibility with the latest application logic.\n     */\n    public upgrade(upgradesOnly?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.upgradeWithHttpInfo(upgradesOnly, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Initial session starting point. Support authorization via a api key, bearer token, or session cookie\n     * \n     */\n    public meWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Me>> {\n        const path = this.basePath + '/api/v3/me';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Me>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * \n     * \n     * @param body \n     */\n    public updateMeWithHttpInfo(body?: MeRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Me>> {\n        const path = this.basePath + '/api/v3/me';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Me>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Run all actions that happen before login such as system upgrades and report installation by default to provide maximum compatibility with  the latest application code.\n     * \n     * @param upgradesOnly Set to true to limit to only system data upgrades which improves performance  but may not guarantee maximum compatibility with the latest application logic.\n     */\n    public upgradeWithHttpInfo(upgradesOnly?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/me/upgrade';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (upgradesOnly !== undefined) {\n            queryParameters = queryParameters.set('upgradesOnly', <any>upgradesOnly);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Post, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { EmissionSourceLinkRequest } from '../model/emissionSourceLinkRequest';\nimport { EsaChannelCreate } from '../model/esaChannelCreate';\nimport { GHGFactorsResponse } from '../model/gHGFactorsResponse';\nimport { MeterBillResponse } from '../model/meterBillResponse';\nimport { MeterCalendarizedUseVsWeatherResponse } from '../model/meterCalendarizedUseVsWeatherResponse';\nimport { MeterCreate } from '../model/meterCreate';\nimport { MeterEdit } from '../model/meterEdit';\nimport { MeterGroupMember } from '../model/meterGroupMember';\nimport { MeterGroupResponse } from '../model/meterGroupResponse';\nimport { MeterRateResponse } from '../model/meterRateResponse';\nimport { MeterResponse } from '../model/meterResponse';\nimport { MeterSerialNumberHistoryRequest } from '../model/meterSerialNumberHistoryRequest';\nimport { MeterSerialNumberHistoryResponse } from '../model/meterSerialNumberHistoryResponse';\nimport { MeterTemplateResponse } from '../model/meterTemplateResponse';\nimport { MeterUDFResponse } from '../model/meterUDFResponse';\nimport { OkObjectResult } from '../model/okObjectResult';\nimport { UDFFieldChild } from '../model/uDFFieldChild';\nimport { UDFValue } from '../model/uDFValue';\nimport { UpdateResult } from '../model/updateResult';\nimport { WatticsDataPoint } from '../model/watticsDataPoint';\nimport { WatticsDataPointRequest } from '../model/watticsDataPointRequest';\nimport { WebhookCustomAction } from '../model/webhookCustomAction';\nimport { WebhookLogDetailsResponse } from '../model/webhookLogDetailsResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class MeterService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Turn a Meter into an ESA Calculated Meter This is only possible if the Meter has NO EsaChannels. A Primary Value ESAChannel will be created, according to the EsaChannelCreateDTO. It must be a Formula Channel. The formula is only permitted to reference other ESA Meters. The referenced Meters&#39; Primary Value Channels will be used in the formula calculation.\n     * \n     * @param meterId The identifier for the meter being converted to an ESA Calculated Meter\n     * @param body \n     */\n    public convertToEsaCalculatedMeter(meterId: number, body?: EsaChannelCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<MeterResponse> {\n        return this.convertToEsaCalculatedMeterWithHttpInfo(meterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<MeterResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Creates a meter\n     * \n     * @param body Data representing the meter being created\n     */\n    public createMeter(body?: MeterCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<MeterResponse> {\n        return this.createMeterWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<MeterResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes a meter\n     * \n     * @param meterId The identifier for the meter being deleted\n     * @param deleteBills Should this cascade to delete any bills associated with this meter\n     */\n    public deleteMeter(meterId: number, deleteBills?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteMeterWithHttpInfo(meterId, deleteBills, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Download file for a meter custom field\n     * \n     * @param meterId \n     * @param udfId \n     */\n    public downloadMeterCustomFieldFile(meterId: number, udfId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.downloadMeterCustomFieldFileWithHttpInfo(meterId, udfId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit emission source data on a meter\n     * \n     * @param meterId The meter identifier for the meter to edit\n     * @param body Emission Source data to assign to the meter\n     */\n    public editEmissionSourceLink(meterId: number, body?: EmissionSourceLinkRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EmissionSourceLinkRequest> {\n        return this.editEmissionSourceLinkWithHttpInfo(meterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EmissionSourceLinkRequest>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits a meter&#39;s group memberships.  Note that all groups a meter should belong to must be passed in. Passing in one group means that the meter will belong to one group only,  even if it previously belonged to several. Only manual groups assignments can be changed; auto groups are unaffected.\n     * \n     * @param meterId The meter identifier whose group memberships are being edited\n     * @param body The groups the meter will belong to\n     */\n    public editMeterGroupMembership(meterId: number, body?: Array<MeterGroupMember>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MeterGroupResponse>> {\n        return this.editMeterGroupMembershipWithHttpInfo(meterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MeterGroupResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * \n     * \n     * @param meterId \n     * @param body \n     */\n    public editMeterSerialNumberVersion(meterId: number, body?: MeterSerialNumberHistoryRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<MeterSerialNumberHistoryResponse> {\n        return this.editMeterSerialNumberVersionWithHttpInfo(meterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<MeterSerialNumberHistoryResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits user defined field / custom field values for a particular meter\n     * \n     * @param meterId The identifier for the meter\n     * @param body Data representing the meter user defined fields / custom fields being edited\n     */\n    public editMeterUDFs(meterId: number, body?: Array<UDFValue>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<UDFFieldChild>> {\n        return this.editMeterUDFsWithHttpInfo(meterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<UDFFieldChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits a meter - unlike the original v3 EditMeter API, the meter use unit will be removed if it is null\n     * \n     * @param meterId The meter identifier for the meter being edited\n     * @param body Data representing the meter being edited\n     */\n    public editMeterWithUnits(meterId: number, body?: MeterEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<MeterResponse> {\n        return this.editMeterWithUnitsWithHttpInfo(meterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<MeterResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit SmartAnalytics (Wattics) data on a meter\n     * \n     * @param meterId The meter identifier for the meter to edit\n     * @param body Identifier for the SmartAnaltyics data point to assign to the meter\n     */\n    public editWatticsDataPointLink(meterId: number, body?: WatticsDataPointRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<WatticsDataPoint> {\n        return this.editWatticsDataPointLinkWithHttpInfo(meterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<WatticsDataPoint>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get calendarized Use vs Weather data\n     * \n     * @param meterId The meter identifier\n     */\n    public getCalendarizedUseVsWeatherData(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MeterCalendarizedUseVsWeatherResponse>> {\n        return this.getCalendarizedUseVsWeatherDataWithHttpInfo(meterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MeterCalendarizedUseVsWeatherResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get the ghg meter factors\n     * \n     * @param meterId The meter identifier for ghg factors are being retrieved\n     */\n    public getGHGMeterFactors(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<GHGFactorsResponse>> {\n        return this.getGHGMeterFactorsWithHttpInfo(meterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<GHGFactorsResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves one meter\n     * \n     * @param meterId The meter identifier for the meter being retrieved\n     */\n    public getMeter(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<MeterResponse> {\n        return this.getMeterWithHttpInfo(meterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<MeterResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all bills for a particular meter\n     * \n     * @param meterId The meter identifier for which bill values are being retrieved\n     */\n    public getMeterBills(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MeterBillResponse>> {\n        return this.getMeterBillsWithHttpInfo(meterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MeterBillResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all Meter Groups for a particular meter\n     * \n     * @param meterId The meter identifier for which group values are being retrieved\n     */\n    public getMeterGroups(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MeterGroupResponse>> {\n        return this.getMeterGroupsWithHttpInfo(meterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MeterGroupResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all rates for a particular meter\n     * \n     * @param meterId The meter identifier for which rate values are being retrieved\n     */\n    public getMeterRates(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MeterRateResponse>> {\n        return this.getMeterRatesWithHttpInfo(meterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MeterRateResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all templates for a particular meter\n     * \n     * @param meterId The meter identifier for which template values are being retrieved\n     */\n    public getMeterTemplates(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MeterTemplateResponse>> {\n        return this.getMeterTemplatesWithHttpInfo(meterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MeterTemplateResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all user defined fields / custom fields for a particular meter\n     * \n     * @param meterId The meter identifier for which user defined field / custom field values are being retrieved\n     */\n    public getMeterUdfs(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<UDFFieldChild>> {\n        return this.getMeterUdfsWithHttpInfo(meterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<UDFFieldChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all meters\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMeters(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MeterResponse>> {\n        return this.getMetersWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MeterResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all user defined fields / custom fields for all meters\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMetersUdfs(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MeterUDFResponse>> {\n        return this.getMetersUdfsWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MeterUDFResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get all unplaced meters\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getUnplacedMeters(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MeterResponse>> {\n        return this.getUnplacedMetersWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MeterResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Move list of meters to be under parentPlaceId\n     * \n     * @param parentPlaceId The identifier for the new parent place\n     * @param body List of meterIds to move under the parentPlaceId\n     */\n    public moveMeter(parentPlaceId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.moveMeterWithHttpInfo(parentPlaceId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Fires a custom meter action. Custom meter actions are setup as webhooks\n     * \n     * @param body \n     */\n    public processMeterCustomAction(body?: WebhookCustomAction, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<WebhookLogDetailsResponse> {\n        return this.processMeterCustomActionWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<WebhookLogDetailsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Turn a Meter into an ESA Calculated Meter This is only possible if the Meter has NO EsaChannels. A Primary Value ESAChannel will be created, according to the EsaChannelCreateDTO. It must be a Formula Channel. The formula is only permitted to reference other ESA Meters. The referenced Meters&#39; Primary Value Channels will be used in the formula calculation.\n     * \n     * @param meterId The identifier for the meter being converted to an ESA Calculated Meter\n     * @param body \n     */\n    public convertToEsaCalculatedMeterWithHttpInfo(meterId: number, body?: EsaChannelCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<MeterResponse>> {\n        const path = this.basePath + '/api/v202510/meter/${meterId}/convertToEsaCalculatedMeter'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling convertToEsaCalculatedMeter.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<MeterResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Creates a meter\n     * \n     * @param body Data representing the meter being created\n     */\n    public createMeterWithHttpInfo(body?: MeterCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<MeterResponse>> {\n        const path = this.basePath + '/api/v3/meter';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<MeterResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Deletes a meter\n     * \n     * @param meterId The identifier for the meter being deleted\n     * @param deleteBills Should this cascade to delete any bills associated with this meter\n     */\n    public deleteMeterWithHttpInfo(meterId: number, deleteBills?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling deleteMeter.');\n        }\n        if (deleteBills !== undefined) {\n            queryParameters = queryParameters.set('deleteBills', <any>deleteBills);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Download file for a meter custom field\n     * \n     * @param meterId \n     * @param udfId \n     */\n    public downloadMeterCustomFieldFileWithHttpInfo(meterId: number, udfId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202105/meter/${meterId}/udf/${udfId}/download'\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'udfId' + '}', String(udfId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling downloadMeterCustomFieldFile.');\n        }\n        // verify required parameter 'udfId' is not null or undefined\n        if (udfId === null || udfId === undefined) {\n            throw new Error('Required parameter udfId was null or undefined when calling downloadMeterCustomFieldFile.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Edit emission source data on a meter\n     * \n     * @param meterId The meter identifier for the meter to edit\n     * @param body Emission Source data to assign to the meter\n     */\n    public editEmissionSourceLinkWithHttpInfo(meterId: number, body?: EmissionSourceLinkRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EmissionSourceLinkRequest>> {\n        const path = this.basePath + '/api/v202307/meter/${meterId}/emissionSource'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling editEmissionSourceLink.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EmissionSourceLinkRequest>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edits a meter&#39;s group memberships.  Note that all groups a meter should belong to must be passed in. Passing in one group means that the meter will belong to one group only,  even if it previously belonged to several. Only manual groups assignments can be changed; auto groups are unaffected.\n     * \n     * @param meterId The meter identifier whose group memberships are being edited\n     * @param body The groups the meter will belong to\n     */\n    public editMeterGroupMembershipWithHttpInfo(meterId: number, body?: Array<MeterGroupMember>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MeterGroupResponse>>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/group'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling editMeterGroupMembership.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MeterGroupResponse>>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * \n     * \n     * @param meterId \n     * @param body \n     */\n    public editMeterSerialNumberVersionWithHttpInfo(meterId: number, body?: MeterSerialNumberHistoryRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<MeterSerialNumberHistoryResponse>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/serialnumberversion'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling editMeterSerialNumberVersion.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<MeterSerialNumberHistoryResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edits user defined field / custom field values for a particular meter\n     * \n     * @param meterId The identifier for the meter\n     * @param body Data representing the meter user defined fields / custom fields being edited\n     */\n    public editMeterUDFsWithHttpInfo(meterId: number, body?: Array<UDFValue>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<UDFFieldChild>>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/udf'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling editMeterUDFs.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<UDFFieldChild>>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edits a meter - unlike the original v3 EditMeter API, the meter use unit will be removed if it is null\n     * \n     * @param meterId The meter identifier for the meter being edited\n     * @param body Data representing the meter being edited\n     */\n    public editMeterWithUnitsWithHttpInfo(meterId: number, body?: MeterEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<MeterResponse>> {\n        const path = this.basePath + '/api/v202307/meter/${meterId}'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling editMeterWithUnits.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<MeterResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edit SmartAnalytics (Wattics) data on a meter\n     * \n     * @param meterId The meter identifier for the meter to edit\n     * @param body Identifier for the SmartAnaltyics data point to assign to the meter\n     */\n    public editWatticsDataPointLinkWithHttpInfo(meterId: number, body?: WatticsDataPointRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<WatticsDataPoint>> {\n        const path = this.basePath + '/api/v202302/meter/${meterId}/watticsDataPoint'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling editWatticsDataPointLink.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<WatticsDataPoint>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Get calendarized Use vs Weather data\n     * \n     * @param meterId The meter identifier\n     */\n    public getCalendarizedUseVsWeatherDataWithHttpInfo(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MeterCalendarizedUseVsWeatherResponse>>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/usevsweather/calendarized'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getCalendarizedUseVsWeatherData.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MeterCalendarizedUseVsWeatherResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get the ghg meter factors\n     * \n     * @param meterId The meter identifier for ghg factors are being retrieved\n     */\n    public getGHGMeterFactorsWithHttpInfo(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<GHGFactorsResponse>>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/ghg/factor'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getGHGMeterFactors.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<GHGFactorsResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves one meter\n     * \n     * @param meterId The meter identifier for the meter being retrieved\n     */\n    public getMeterWithHttpInfo(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<MeterResponse>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getMeter.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<MeterResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all bills for a particular meter\n     * \n     * @param meterId The meter identifier for which bill values are being retrieved\n     */\n    public getMeterBillsWithHttpInfo(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MeterBillResponse>>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/bill'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getMeterBills.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MeterBillResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all Meter Groups for a particular meter\n     * \n     * @param meterId The meter identifier for which group values are being retrieved\n     */\n    public getMeterGroupsWithHttpInfo(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MeterGroupResponse>>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/group'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getMeterGroups.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MeterGroupResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all rates for a particular meter\n     * \n     * @param meterId The meter identifier for which rate values are being retrieved\n     */\n    public getMeterRatesWithHttpInfo(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MeterRateResponse>>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/rate'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getMeterRates.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MeterRateResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all templates for a particular meter\n     * \n     * @param meterId The meter identifier for which template values are being retrieved\n     */\n    public getMeterTemplatesWithHttpInfo(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MeterTemplateResponse>>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/template'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getMeterTemplates.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MeterTemplateResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all user defined fields / custom fields for a particular meter\n     * \n     * @param meterId The meter identifier for which user defined field / custom field values are being retrieved\n     */\n    public getMeterUdfsWithHttpInfo(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<UDFFieldChild>>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/udf'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getMeterUdfs.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<UDFFieldChild>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all meters\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMetersWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MeterResponse>>> {\n        const path = this.basePath + '/api/v3/meter';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MeterResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all user defined fields / custom fields for all meters\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMetersUdfsWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MeterUDFResponse>>> {\n        const path = this.basePath + '/api/v3/meter/udf';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MeterUDFResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get all unplaced meters\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getUnplacedMetersWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MeterResponse>>> {\n        const path = this.basePath + '/api/v202203/meter/unplacedMeters';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MeterResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Move list of meters to be under parentPlaceId\n     * \n     * @param parentPlaceId The identifier for the new parent place\n     * @param body List of meterIds to move under the parentPlaceId\n     */\n    public moveMeterWithHttpInfo(parentPlaceId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/parentPlace/${parentPlaceId}/meter'\n                    .replace('${' + 'parentPlaceId' + '}', String(parentPlaceId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'parentPlaceId' is not null or undefined\n        if (parentPlaceId === null || parentPlaceId === undefined) {\n            throw new Error('Required parameter parentPlaceId was null or undefined when calling moveMeter.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Fires a custom meter action. Custom meter actions are setup as webhooks\n     * \n     * @param body \n     */\n    public processMeterCustomActionWithHttpInfo(body?: WebhookCustomAction, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<WebhookLogDetailsResponse>> {\n        const path = this.basePath + '/api/v202211/meter/customAction';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<WebhookLogDetailsResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { MeterDigestActualAndCalendarizedMonthlyResponse } from '../model/meterDigestActualAndCalendarizedMonthlyResponse';\nimport { MeterDigestActualAndCalendarizedYearlyResponse } from '../model/meterDigestActualAndCalendarizedYearlyResponse';\nimport { MeterDigestCalendarizedTrendResponse } from '../model/meterDigestCalendarizedTrendResponse';\nimport { MeterDigestNormalizedMonthlyResponse } from '../model/meterDigestNormalizedMonthlyResponse';\nimport { MeterDigestNormalizedYearlyResponse } from '../model/meterDigestNormalizedYearlyResponse';\nimport { MeterDigestSavingsMonthlyResponse } from '../model/meterDigestSavingsMonthlyResponse';\nimport { MeterDigestSavingsYearlyResponse } from '../model/meterDigestSavingsYearlyResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class MeterDigestService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Retrieves rolled up actual billing data for a given meter for a given range of months- Result includes cost, use, unit cost on a monthly basis.\n     * \n     * @param meterId The identifier for the meter being retrieved\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for actual and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     */\n    public getMeterActualMonthly(meterId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<MeterDigestActualAndCalendarizedMonthlyResponse> {\n        return this.getMeterActualMonthlyWithHttpInfo(meterId, numberOfYears, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<MeterDigestActualAndCalendarizedMonthlyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by meter for a given range of months- Result includes cost, use, unit cost on a monthly basis.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for actual and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMeterActualMonthlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MeterDigestActualAndCalendarizedMonthlyResponse>> {\n        return this.getMeterActualMonthlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MeterDigestActualAndCalendarizedMonthlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up actual billing data for a given meter for a given range of years- Result includes cost, use, unit cost on an yearly basis.\n     * \n     * @param meterId The identifier for the meter being retrieved\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     */\n    public getMeterActualYearly(meterId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<MeterDigestActualAndCalendarizedYearlyResponse> {\n        return this.getMeterActualYearlyWithHttpInfo(meterId, numberOfYears, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<MeterDigestActualAndCalendarizedYearlyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up billing data by meter for a given range of years- Result includes cost, use, unit cost on an yearly basis.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMeterActualYearlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MeterDigestActualAndCalendarizedYearlyResponse>> {\n        return this.getMeterActualYearlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MeterDigestActualAndCalendarizedYearlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up calendarized billing data for a given meter for a given range of months- Result includes cost, use, unit cost on a monthly basis.\n     * \n     * @param meterId The identifier for the meter being retrieved\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for actual and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     */\n    public getMeterCalendarizedMonthly(meterId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<MeterDigestActualAndCalendarizedMonthlyResponse> {\n        return this.getMeterCalendarizedMonthlyWithHttpInfo(meterId, numberOfYears, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<MeterDigestActualAndCalendarizedMonthlyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up calendarized billing data by meter for a given range of months- Result includes cost, use, unit cost on a monthly basis.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for actual and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMeterCalendarizedMonthlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MeterDigestActualAndCalendarizedMonthlyResponse>> {\n        return this.getMeterCalendarizedMonthlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MeterDigestActualAndCalendarizedMonthlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up calendarized billing data for a given meter for a given range of months- Result includes cost, use, unit cost on a monthly basis.\n     * \n     * @param meterId The identifier for the meter being retrieved\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for actual and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     */\n    public getMeterCalendarizedTrend(meterId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<MeterDigestCalendarizedTrendResponse> {\n        return this.getMeterCalendarizedTrendWithHttpInfo(meterId, numberOfYears, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<MeterDigestCalendarizedTrendResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up calendarized billing data for a given meter for a given range of years- Result includes cost, use, unit cost on an yearly basis.\n     * \n     * @param meterId The identifier for the meter being retrieved\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     */\n    public getMeterCalendarizedYearly(meterId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<MeterDigestActualAndCalendarizedYearlyResponse> {\n        return this.getMeterCalendarizedYearlyWithHttpInfo(meterId, numberOfYears, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<MeterDigestActualAndCalendarizedYearlyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up calendarized data by meter for a given range of years- Result includes cost, use, unit cost on an yearly basis.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMeterCalendarizedYearlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MeterDigestActualAndCalendarizedYearlyResponse>> {\n        return this.getMeterCalendarizedYearlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MeterDigestActualAndCalendarizedYearlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up normalized billing data for a given meter for a given range of months- Result includes cost, use, unit cost on a monthly basis.\n     * \n     * @param meterId The identifier for the meter being retrieved\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for actual and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     */\n    public getMeterNormalizedMonthly(meterId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<MeterDigestNormalizedMonthlyResponse> {\n        return this.getMeterNormalizedMonthlyWithHttpInfo(meterId, numberOfYears, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<MeterDigestNormalizedMonthlyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up normalized billing data by meter for a given range of months- Result includes cost, use, unit cost on a monthly basis.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for actual and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMeterNormalizedMonthlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MeterDigestNormalizedMonthlyResponse>> {\n        return this.getMeterNormalizedMonthlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MeterDigestNormalizedMonthlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up normalized billing data for a given meter for a given range of years- Result includes cost, use, unit cost on an yearly basis.\n     * \n     * @param meterId The identifier for the meter being retrieved\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     */\n    public getMeterNormalizedYearly(meterId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<MeterDigestNormalizedYearlyResponse> {\n        return this.getMeterNormalizedYearlyWithHttpInfo(meterId, numberOfYears, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<MeterDigestNormalizedYearlyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up normalized data by meter for a given range of years- Result includes cost, use, unit cost on an yearly basis.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMeterNormalizedYearlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MeterDigestNormalizedYearlyResponse>> {\n        return this.getMeterNormalizedYearlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MeterDigestNormalizedYearlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up savings billing data for a given meter for a given number of years- Result includes cost and use savings on a monthly basis.\n     * \n     * @param meterId The identifier for the meter being retrieved\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years/24 months\n     */\n    public getMeterSavingsMonthly(meterId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<MeterDigestSavingsMonthlyResponse> {\n        return this.getMeterSavingsMonthlyWithHttpInfo(meterId, numberOfYears, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<MeterDigestSavingsMonthlyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up savings billing data by meter for a given number of years- Result includes cost and use savings on a monthly basis.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years/24 months\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMeterSavingsMonthlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MeterDigestSavingsMonthlyResponse>> {\n        return this.getMeterSavingsMonthlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MeterDigestSavingsMonthlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves savings data for a single meter for a given number of years.\n     * \n     * @param meterId The meter for which to return data\n     * @param numberOfYears Number of years of data to return including the current year - Defaults to 4\n     */\n    public getMeterSavingsYearly(meterId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<MeterDigestSavingsYearlyResponse> {\n        return this.getMeterSavingsYearlyWithHttpInfo(meterId, numberOfYears, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<MeterDigestSavingsYearlyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves savings data by meter for a given number of years.\n     * \n     * @param numberOfYears Number of years of data to return including the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMeterSavingsYearlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MeterDigestSavingsYearlyResponse>> {\n        return this.getMeterSavingsYearlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MeterDigestSavingsYearlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Retrieves rolled up actual billing data for a given meter for a given range of months- Result includes cost, use, unit cost on a monthly basis.\n     * \n     * @param meterId The identifier for the meter being retrieved\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for actual and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     */\n    public getMeterActualMonthlyWithHttpInfo(meterId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<MeterDigestActualAndCalendarizedMonthlyResponse>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/digest/actual/monthly'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getMeterActualMonthly.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<MeterDigestActualAndCalendarizedMonthlyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by meter for a given range of months- Result includes cost, use, unit cost on a monthly basis.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for actual and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMeterActualMonthlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MeterDigestActualAndCalendarizedMonthlyResponse>>> {\n        const path = this.basePath + '/api/v3/meter/digest/actual/monthly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MeterDigestActualAndCalendarizedMonthlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up actual billing data for a given meter for a given range of years- Result includes cost, use, unit cost on an yearly basis.\n     * \n     * @param meterId The identifier for the meter being retrieved\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     */\n    public getMeterActualYearlyWithHttpInfo(meterId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<MeterDigestActualAndCalendarizedYearlyResponse>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/digest/actual/yearly'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getMeterActualYearly.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<MeterDigestActualAndCalendarizedYearlyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up billing data by meter for a given range of years- Result includes cost, use, unit cost on an yearly basis.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMeterActualYearlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MeterDigestActualAndCalendarizedYearlyResponse>>> {\n        const path = this.basePath + '/api/v3/meter/digest/actual/yearly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MeterDigestActualAndCalendarizedYearlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up calendarized billing data for a given meter for a given range of months- Result includes cost, use, unit cost on a monthly basis.\n     * \n     * @param meterId The identifier for the meter being retrieved\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for actual and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     */\n    public getMeterCalendarizedMonthlyWithHttpInfo(meterId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<MeterDigestActualAndCalendarizedMonthlyResponse>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/digest/calendarized/monthly'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getMeterCalendarizedMonthly.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<MeterDigestActualAndCalendarizedMonthlyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up calendarized billing data by meter for a given range of months- Result includes cost, use, unit cost on a monthly basis.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for actual and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMeterCalendarizedMonthlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MeterDigestActualAndCalendarizedMonthlyResponse>>> {\n        const path = this.basePath + '/api/v3/meter/digest/calendarized/monthly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MeterDigestActualAndCalendarizedMonthlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up calendarized billing data for a given meter for a given range of months- Result includes cost, use, unit cost on a monthly basis.\n     * \n     * @param meterId The identifier for the meter being retrieved\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for actual and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     */\n    public getMeterCalendarizedTrendWithHttpInfo(meterId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<MeterDigestCalendarizedTrendResponse>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/digest/calendarized/trend'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getMeterCalendarizedTrend.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<MeterDigestCalendarizedTrendResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up calendarized billing data for a given meter for a given range of years- Result includes cost, use, unit cost on an yearly basis.\n     * \n     * @param meterId The identifier for the meter being retrieved\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     */\n    public getMeterCalendarizedYearlyWithHttpInfo(meterId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<MeterDigestActualAndCalendarizedYearlyResponse>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/digest/calendarized/yearly'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getMeterCalendarizedYearly.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<MeterDigestActualAndCalendarizedYearlyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up calendarized data by meter for a given range of years- Result includes cost, use, unit cost on an yearly basis.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMeterCalendarizedYearlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MeterDigestActualAndCalendarizedYearlyResponse>>> {\n        const path = this.basePath + '/api/v3/meter/digest/calendarized/yearly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MeterDigestActualAndCalendarizedYearlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up normalized billing data for a given meter for a given range of months- Result includes cost, use, unit cost on a monthly basis.\n     * \n     * @param meterId The identifier for the meter being retrieved\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for actual and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     */\n    public getMeterNormalizedMonthlyWithHttpInfo(meterId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<MeterDigestNormalizedMonthlyResponse>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/digest/normalized/monthly'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getMeterNormalizedMonthly.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<MeterDigestNormalizedMonthlyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up normalized billing data by meter for a given range of months- Result includes cost, use, unit cost on a monthly basis.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for actual and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMeterNormalizedMonthlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MeterDigestNormalizedMonthlyResponse>>> {\n        const path = this.basePath + '/api/v3/meter/digest/normalized/monthly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MeterDigestNormalizedMonthlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up normalized billing data for a given meter for a given range of years- Result includes cost, use, unit cost on an yearly basis.\n     * \n     * @param meterId The identifier for the meter being retrieved\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     */\n    public getMeterNormalizedYearlyWithHttpInfo(meterId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<MeterDigestNormalizedYearlyResponse>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/digest/normalized/yearly'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getMeterNormalizedYearly.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<MeterDigestNormalizedYearlyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up normalized data by meter for a given range of years- Result includes cost, use, unit cost on an yearly basis.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMeterNormalizedYearlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MeterDigestNormalizedYearlyResponse>>> {\n        const path = this.basePath + '/api/v3/meter/digest/normalized/yearly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MeterDigestNormalizedYearlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up savings billing data for a given meter for a given number of years- Result includes cost and use savings on a monthly basis.\n     * \n     * @param meterId The identifier for the meter being retrieved\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years/24 months\n     */\n    public getMeterSavingsMonthlyWithHttpInfo(meterId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<MeterDigestSavingsMonthlyResponse>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/digest/savings/monthly'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getMeterSavingsMonthly.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<MeterDigestSavingsMonthlyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up savings billing data by meter for a given number of years- Result includes cost and use savings on a monthly basis.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years/24 months\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMeterSavingsMonthlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MeterDigestSavingsMonthlyResponse>>> {\n        const path = this.basePath + '/api/v3/meter/digest/savings/monthly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MeterDigestSavingsMonthlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves savings data for a single meter for a given number of years.\n     * \n     * @param meterId The meter for which to return data\n     * @param numberOfYears Number of years of data to return including the current year - Defaults to 4\n     */\n    public getMeterSavingsYearlyWithHttpInfo(meterId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<MeterDigestSavingsYearlyResponse>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/digest/savings/yearly'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getMeterSavingsYearly.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<MeterDigestSavingsYearlyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves savings data by meter for a given number of years.\n     * \n     * @param numberOfYears Number of years of data to return including the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMeterSavingsYearlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MeterDigestSavingsYearlyResponse>>> {\n        const path = this.basePath + '/api/v3/meter/digest/savings/yearly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MeterDigestSavingsYearlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { FilterResponse } from '../model/filterResponse';\nimport { GroupMemberRequest } from '../model/groupMemberRequest';\nimport { GroupMeterGroupResponse } from '../model/groupMeterGroupResponse';\nimport { MeterCategoryRequest } from '../model/meterCategoryRequest';\nimport { MeterCategoryResponse } from '../model/meterCategoryResponse';\nimport { MeterGroupMemberChild } from '../model/meterGroupMemberChild';\nimport { MeterGroupRequest } from '../model/meterGroupRequest';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class MeterGroupService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Create a meter group category\n     * \n     * @param body Data representing the meter group category being created\n     */\n    public createMeterCategory(body?: MeterCategoryRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<MeterCategoryResponse> {\n        return this.createMeterCategoryWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<MeterCategoryResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Create a meter group\n     * \n     * @param body Data representing the meter group being created\n     */\n    public createMeterGroup(body?: MeterGroupRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<GroupMeterGroupResponse> {\n        return this.createMeterGroupWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<GroupMeterGroupResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete a meter group category\n     * \n     * @param categoryId Id of the category to delete\n     */\n    public deleteMeterCategory(categoryId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteMeterCategoryWithHttpInfo(categoryId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete a user-created meter group\n     * \n     * @param meterGroupId \n     */\n    public deleteMeterGroup(meterGroupId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteMeterGroupWithHttpInfo(meterGroupId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Update a meter group category\n     * \n     * @param categoryId Id of the category to update\n     * @param body Data to update the meter group category\n     */\n    public editMeterCategory(categoryId: number, body?: MeterCategoryRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<MeterCategoryResponse> {\n        return this.editMeterCategoryWithHttpInfo(categoryId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<MeterCategoryResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit a meter group\n     * \n     * @param meterGroupId Id of the group to edit\n     * @param body Data representing the meter group being edited\n     */\n    public editMeterGroup(meterGroupId: number, body?: MeterGroupRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<GroupMeterGroupResponse> {\n        return this.editMeterGroupWithHttpInfo(meterGroupId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<GroupMeterGroupResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Gets a list of meter groups\n     * \n     * @param filter \n     */\n    public getAllMeterGroups(filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<GroupMeterGroupResponse>> {\n        return this.getAllMeterGroupsWithHttpInfo(filter, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<GroupMeterGroupResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Gets a list of meter categories\n     * \n     */\n    public getMeterCategories(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MeterCategoryResponse>> {\n        return this.getMeterCategoriesWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MeterCategoryResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieve a meter group category\n     * \n     * @param categoryId The identifier for the meter group category being retrieved\n     */\n    public getMeterCategory(categoryId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<MeterCategoryResponse> {\n        return this.getMeterCategoryWithHttpInfo(categoryId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<MeterCategoryResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Gets a meter group\n     * \n     * @param meterGroupId \n     */\n    public getMeterGroup(meterGroupId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<GroupMeterGroupResponse> {\n        return this.getMeterGroupWithHttpInfo(meterGroupId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<GroupMeterGroupResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Gets a list of meter group members\n     * \n     * @param groupId \n     * @param alwaysLimitByTopmost \n     */\n    public getMeterGroupMembers(groupId: number, alwaysLimitByTopmost?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MeterGroupMemberChild>> {\n        return this.getMeterGroupMembersWithHttpInfo(groupId, alwaysLimitByTopmost, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MeterGroupMemberChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Gets a list of filters that can be used to create Meter Groups\n     * \n     */\n    public getUserDefinedAutoMeterGroupFilters(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<FilterResponse>> {\n        return this.getUserDefinedAutoMeterGroupFiltersWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<FilterResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Include all group members in charts\n     * \n     * @param meterGroupId \n     */\n    public includeAllMeterGroupMemberInCharts(meterGroupId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.includeAllMeterGroupMemberInChartsWithHttpInfo(meterGroupId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Refreshes group membership for all user defined auto groups\n     * \n     */\n    public recalculateAllUserMeterAutoGroupsMembership(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.recalculateAllUserMeterAutoGroupsMembershipWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Refreshes group membership for a user defined auto group\n     * \n     * @param meterGroupId The meter group to refresh\n     */\n    public recalculateUserMeterAutoGroupMemebership(meterGroupId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<GroupMeterGroupResponse> {\n        return this.recalculateUserMeterAutoGroupMemebershipWithHttpInfo(meterGroupId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<GroupMeterGroupResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Update a group member&#39;s include in charts flag\n     * \n     * @param meterGroupId \n     * @param meterId \n     * @param body \n     */\n    public updateMeterGroupMember(meterGroupId: number, meterId: number, body?: GroupMemberRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<MeterGroupMemberChild> {\n        return this.updateMeterGroupMemberWithHttpInfo(meterGroupId, meterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<MeterGroupMemberChild>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Create a meter group category\n     * \n     * @param body Data representing the meter group category being created\n     */\n    public createMeterCategoryWithHttpInfo(body?: MeterCategoryRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<MeterCategoryResponse>> {\n        const path = this.basePath + '/api/v3/meterGroup/category';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<MeterCategoryResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Create a meter group\n     * \n     * @param body Data representing the meter group being created\n     */\n    public createMeterGroupWithHttpInfo(body?: MeterGroupRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<GroupMeterGroupResponse>> {\n        const path = this.basePath + '/api/v3/meterGroup';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<GroupMeterGroupResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Delete a meter group category\n     * \n     * @param categoryId Id of the category to delete\n     */\n    public deleteMeterCategoryWithHttpInfo(categoryId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/meterGroup/category/${categoryId}'\n                    .replace('${' + 'categoryId' + '}', String(categoryId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'categoryId' is not null or undefined\n        if (categoryId === null || categoryId === undefined) {\n            throw new Error('Required parameter categoryId was null or undefined when calling deleteMeterCategory.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Delete a user-created meter group\n     * \n     * @param meterGroupId \n     */\n    public deleteMeterGroupWithHttpInfo(meterGroupId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/meterGroup/${meterGroupId}'\n                    .replace('${' + 'meterGroupId' + '}', String(meterGroupId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterGroupId' is not null or undefined\n        if (meterGroupId === null || meterGroupId === undefined) {\n            throw new Error('Required parameter meterGroupId was null or undefined when calling deleteMeterGroup.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Update a meter group category\n     * \n     * @param categoryId Id of the category to update\n     * @param body Data to update the meter group category\n     */\n    public editMeterCategoryWithHttpInfo(categoryId: number, body?: MeterCategoryRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<MeterCategoryResponse>> {\n        const path = this.basePath + '/api/v3/meterGroup/category/${categoryId}'\n                    .replace('${' + 'categoryId' + '}', String(categoryId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'categoryId' is not null or undefined\n        if (categoryId === null || categoryId === undefined) {\n            throw new Error('Required parameter categoryId was null or undefined when calling editMeterCategory.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<MeterCategoryResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edit a meter group\n     * \n     * @param meterGroupId Id of the group to edit\n     * @param body Data representing the meter group being edited\n     */\n    public editMeterGroupWithHttpInfo(meterGroupId: number, body?: MeterGroupRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<GroupMeterGroupResponse>> {\n        const path = this.basePath + '/api/v3/meterGroup/${meterGroupId}'\n                    .replace('${' + 'meterGroupId' + '}', String(meterGroupId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterGroupId' is not null or undefined\n        if (meterGroupId === null || meterGroupId === undefined) {\n            throw new Error('Required parameter meterGroupId was null or undefined when calling editMeterGroup.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<GroupMeterGroupResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Gets a list of meter groups\n     * \n     * @param filter \n     */\n    public getAllMeterGroupsWithHttpInfo(filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<GroupMeterGroupResponse>>> {\n        const path = this.basePath + '/api/v3/meterGroup';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<GroupMeterGroupResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Gets a list of meter categories\n     * \n     */\n    public getMeterCategoriesWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MeterCategoryResponse>>> {\n        const path = this.basePath + '/api/v3/meterGroup/category';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MeterCategoryResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieve a meter group category\n     * \n     * @param categoryId The identifier for the meter group category being retrieved\n     */\n    public getMeterCategoryWithHttpInfo(categoryId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<MeterCategoryResponse>> {\n        const path = this.basePath + '/api/v3/meterGroup/category/${categoryId}'\n                    .replace('${' + 'categoryId' + '}', String(categoryId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'categoryId' is not null or undefined\n        if (categoryId === null || categoryId === undefined) {\n            throw new Error('Required parameter categoryId was null or undefined when calling getMeterCategory.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<MeterCategoryResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Gets a meter group\n     * \n     * @param meterGroupId \n     */\n    public getMeterGroupWithHttpInfo(meterGroupId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<GroupMeterGroupResponse>> {\n        const path = this.basePath + '/api/v3/meterGroup/${meterGroupId}'\n                    .replace('${' + 'meterGroupId' + '}', String(meterGroupId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterGroupId' is not null or undefined\n        if (meterGroupId === null || meterGroupId === undefined) {\n            throw new Error('Required parameter meterGroupId was null or undefined when calling getMeterGroup.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<GroupMeterGroupResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Gets a list of meter group members\n     * \n     * @param groupId \n     * @param alwaysLimitByTopmost \n     */\n    public getMeterGroupMembersWithHttpInfo(groupId: number, alwaysLimitByTopmost?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MeterGroupMemberChild>>> {\n        const path = this.basePath + '/api/v3/meterGroup/${groupId}/member'\n                    .replace('${' + 'groupId' + '}', String(groupId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'groupId' is not null or undefined\n        if (groupId === null || groupId === undefined) {\n            throw new Error('Required parameter groupId was null or undefined when calling getMeterGroupMembers.');\n        }\n        if (alwaysLimitByTopmost !== undefined) {\n            queryParameters = queryParameters.set('alwaysLimitByTopmost', <any>alwaysLimitByTopmost);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MeterGroupMemberChild>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Gets a list of filters that can be used to create Meter Groups\n     * \n     */\n    public getUserDefinedAutoMeterGroupFiltersWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<FilterResponse>>> {\n        const path = this.basePath + '/api/v3/meterGroup/filters';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<FilterResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Include all group members in charts\n     * \n     * @param meterGroupId \n     */\n    public includeAllMeterGroupMemberInChartsWithHttpInfo(meterGroupId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/meterGroup/${meterGroupId}/member/includeInCharts'\n                    .replace('${' + 'meterGroupId' + '}', String(meterGroupId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterGroupId' is not null or undefined\n        if (meterGroupId === null || meterGroupId === undefined) {\n            throw new Error('Required parameter meterGroupId was null or undefined when calling includeAllMeterGroupMemberInCharts.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Refreshes group membership for all user defined auto groups\n     * \n     */\n    public recalculateAllUserMeterAutoGroupsMembershipWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/meterGroup/updateUserAutoGroups';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Refreshes group membership for a user defined auto group\n     * \n     * @param meterGroupId The meter group to refresh\n     */\n    public recalculateUserMeterAutoGroupMemebershipWithHttpInfo(meterGroupId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<GroupMeterGroupResponse>> {\n        const path = this.basePath + '/api/v3/meterGroup/${meterGroupId}/updateUserAutoGroup'\n                    .replace('${' + 'meterGroupId' + '}', String(meterGroupId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterGroupId' is not null or undefined\n        if (meterGroupId === null || meterGroupId === undefined) {\n            throw new Error('Required parameter meterGroupId was null or undefined when calling recalculateUserMeterAutoGroupMemebership.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<GroupMeterGroupResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Update a group member&#39;s include in charts flag\n     * \n     * @param meterGroupId \n     * @param meterId \n     * @param body \n     */\n    public updateMeterGroupMemberWithHttpInfo(meterGroupId: number, meterId: number, body?: GroupMemberRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<MeterGroupMemberChild>> {\n        const path = this.basePath + '/api/v3/meterGroup/${meterGroupId}/member/${meterId}'\n                    .replace('${' + 'meterGroupId' + '}', String(meterGroupId))\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterGroupId' is not null or undefined\n        if (meterGroupId === null || meterGroupId === undefined) {\n            throw new Error('Required parameter meterGroupId was null or undefined when calling updateMeterGroupMember.');\n        }\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling updateMeterGroupMember.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<MeterGroupMemberChild>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { MeterGroupDigestDemandRankingResponse } from '../model/meterGroupDigestDemandRankingResponse';\nimport { MeterGroupDigestRankingResponse } from '../model/meterGroupDigestRankingResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class MeterGroupDigestService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Retrieves cost, use, unit cost or demand per day ranking data by meter group.\n     * Specify values for any query parameters whose database values are to be overridden.              **PLEASE NOTE: As shown in the table below, this API endpoint returns different response types based on the \\&quot;chart\\&quot; value. Despite what you see below regarding HTTP status codes for each response type, _all_ of these response types will return 200 OK.**  |  Chart   |              Response Type               | | -------- | ---------------------------------------- | | cost     | MeterGroupDigestRankingResponseDTO       | | use      | MeterGroupDigestRankingResponseDTO       | | unitCost | MeterGroupDigestRankingResponseDTO       | | demand   | MeterGroupDigestDemandRankingResponseDTO |\n     * @param groupId The meter group to retrieve data for\n     * @param dataView The desired data view - actual, calendarized, normalized\n     * @param chart The desired chart - cost, use, unitcost, demand\n     * @param billingPeriodOption The billing period option - last12periods, lastyear, lastfiscalyear, custom (optional)\n     * @param startPeriod The custom start period (optional)\n     * @param endPeriod The custom end period (optional)\n     * @param commodityId Id of commodity to filter by (optional)\n     * @param commodityCategoryId Id of commodity category to filter by (optional)\n     * @param highToLowRanking Ranking from high to low, or low to high? (optional)\n     * @param showExcludedMembers Show group members excluded from the group? (optional)\n     * @param showZeroAverages Show group members whose ranking averages are zero? (optional)\n     */\n    public getMeterGroupRanking(groupId: number, dataView: string, chart: string, billingPeriodOption?: string, startPeriod?: number, endPeriod?: number, commodityId?: number, commodityCategoryId?: number, highToLowRanking?: boolean, showExcludedMembers?: boolean, showZeroAverages?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<MeterGroupDigestRankingResponse> {\n        return this.getMeterGroupRankingWithHttpInfo(groupId, dataView, chart, billingPeriodOption, startPeriod, endPeriod, commodityId, commodityCategoryId, highToLowRanking, showExcludedMembers, showZeroAverages, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<MeterGroupDigestRankingResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Retrieves cost, use, unit cost or demand per day ranking data by meter group.\n     * Specify values for any query parameters whose database values are to be overridden.              **PLEASE NOTE: As shown in the table below, this API endpoint returns different response types based on the \\&quot;chart\\&quot; value. Despite what you see below regarding HTTP status codes for each response type, _all_ of these response types will return 200 OK.**  |  Chart   |              Response Type               | | -------- | ---------------------------------------- | | cost     | MeterGroupDigestRankingResponseDTO       | | use      | MeterGroupDigestRankingResponseDTO       | | unitCost | MeterGroupDigestRankingResponseDTO       | | demand   | MeterGroupDigestDemandRankingResponseDTO |\n     * @param groupId The meter group to retrieve data for\n     * @param dataView The desired data view - actual, calendarized, normalized\n     * @param chart The desired chart - cost, use, unitcost, demand\n     * @param billingPeriodOption The billing period option - last12periods, lastyear, lastfiscalyear, custom (optional)\n     * @param startPeriod The custom start period (optional)\n     * @param endPeriod The custom end period (optional)\n     * @param commodityId Id of commodity to filter by (optional)\n     * @param commodityCategoryId Id of commodity category to filter by (optional)\n     * @param highToLowRanking Ranking from high to low, or low to high? (optional)\n     * @param showExcludedMembers Show group members excluded from the group? (optional)\n     * @param showZeroAverages Show group members whose ranking averages are zero? (optional)\n     */\n    public getMeterGroupRankingWithHttpInfo(groupId: number, dataView: string, chart: string, billingPeriodOption?: string, startPeriod?: number, endPeriod?: number, commodityId?: number, commodityCategoryId?: number, highToLowRanking?: boolean, showExcludedMembers?: boolean, showZeroAverages?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<MeterGroupDigestRankingResponse>> {\n        const path = this.basePath + '/api/v3/meterGroup/${groupId}/digest/${dataView}/${chart}'\n                    .replace('${' + 'groupId' + '}', String(groupId))\n                    .replace('${' + 'dataView' + '}', String(dataView))\n                    .replace('${' + 'chart' + '}', String(chart));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'groupId' is not null or undefined\n        if (groupId === null || groupId === undefined) {\n            throw new Error('Required parameter groupId was null or undefined when calling getMeterGroupRanking.');\n        }\n        // verify required parameter 'dataView' is not null or undefined\n        if (dataView === null || dataView === undefined) {\n            throw new Error('Required parameter dataView was null or undefined when calling getMeterGroupRanking.');\n        }\n        // verify required parameter 'chart' is not null or undefined\n        if (chart === null || chart === undefined) {\n            throw new Error('Required parameter chart was null or undefined when calling getMeterGroupRanking.');\n        }\n        if (billingPeriodOption !== undefined) {\n            queryParameters = queryParameters.set('billingPeriodOption', <any>billingPeriodOption);\n        }\n\n        if (startPeriod !== undefined) {\n            queryParameters = queryParameters.set('startPeriod', <any>startPeriod);\n        }\n\n        if (endPeriod !== undefined) {\n            queryParameters = queryParameters.set('endPeriod', <any>endPeriod);\n        }\n\n        if (commodityId !== undefined) {\n            queryParameters = queryParameters.set('commodityId', <any>commodityId);\n        }\n\n        if (commodityCategoryId !== undefined) {\n            queryParameters = queryParameters.set('commodityCategoryId', <any>commodityCategoryId);\n        }\n\n        if (highToLowRanking !== undefined) {\n            queryParameters = queryParameters.set('highToLowRanking', <any>highToLowRanking);\n        }\n\n        if (showExcludedMembers !== undefined) {\n            queryParameters = queryParameters.set('showExcludedMembers', <any>showExcludedMembers);\n        }\n\n        if (showZeroAverages !== undefined) {\n            queryParameters = queryParameters.set('showZeroAverages', <any>showZeroAverages);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<MeterGroupDigestRankingResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { NotificationBadgeResponse } from '../model/notificationBadgeResponse';\nimport { NotificationDetailsResponse } from '../model/notificationDetailsResponse';\nimport { NotificationResponse } from '../model/notificationResponse';\nimport { NotificationSettingRequest } from '../model/notificationSettingRequest';\nimport { NotificationSettingsResponse } from '../model/notificationSettingsResponse';\nimport { NotificationSystemSettingsRequest } from '../model/notificationSystemSettingsRequest';\nimport { NotificationType } from '../model/notificationType';\nimport { NotificationUpdateRequest } from '../model/notificationUpdateRequest';\nimport { UpdateResult } from '../model/updateResult';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class NotificationService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Get a specific notification for the current user\n     * \n     * @param notificationId Id of the notification to get\n     */\n    public getNotification(notificationId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<NotificationResponse> {\n        return this.getNotificationWithHttpInfo(notificationId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<NotificationResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get total number of notifications that are unread and unarchived for the current user. Use lastCheckDateTimeUtc to get the number of new notifications since the passed in date and time. By default, only the latest 250 notifications will be taken into account. Use the &#39;noLimit&#39; query parameter to override this behavior.\n     * \n     * @param lastCheckDateTimeUtc Used when calculating the number of new notifications. Must be a UTC DateTime in the format yyyy-MM-ddTHH:mm:ssZ. If not passed the TotalNotifications and NewNotifications will be equal.\n     * @param noLimit If true, will return the badge totals for all of the user&#39;s notifications, not just the 250 most recent ones\n     */\n    public getNotificationBadgeTotals(lastCheckDateTimeUtc?: Date, noLimit?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<NotificationBadgeResponse> {\n        return this.getNotificationBadgeTotalsWithHttpInfo(lastCheckDateTimeUtc, noLimit, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<NotificationBadgeResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a specific notification&#39;s details for the current user\n     * \n     * @param notificationId Id of the notification to get\n     */\n    public getNotificationDetails(notificationId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<NotificationDetailsResponse> {\n        return this.getNotificationDetailsWithHttpInfo(notificationId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<NotificationDetailsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * The default notification settings assigned to new users\n     * \n     */\n    public getNotificationSystemSettings(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<NotificationSettingsResponse> {\n        return this.getNotificationSystemSettingsWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<NotificationSettingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a list of notification types\n     * \n     */\n    public getNotificationTypes(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<NotificationType>> {\n        return this.getNotificationTypesWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<NotificationType>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * The notification settings for the current user\n     * \n     */\n    public getNotificationUserSettings(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<NotificationSettingsResponse> {\n        return this.getNotificationUserSettingsWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<NotificationSettingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get all notifications for the current user\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getNotifications(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<NotificationResponse>> {\n        return this.getNotificationsWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<NotificationResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Update a list of notifications based on the notification ids and action passed in Only notifications for the current user can be updated\n     * \n     * @param body List of notification ids and action to perform\n     */\n    public updateListOfNotifications(body?: NotificationUpdateRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.updateListOfNotificationsWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Update the default notification settings assigned to new users\n     * \n     * @param body Values to update the system notification settings.  If a setting is not passed it&#39;s value is not updated.\n     */\n    public updateNotificationSystemSettings(body?: NotificationSystemSettingsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<NotificationSettingsResponse> {\n        return this.updateNotificationSystemSettingsWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<NotificationSettingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Update the notification settings for the current user\n     * \n     * @param body Values to update the system notification settings.  If a setting is not passed it&#39;s value is not updated.\n     */\n    public updateNotificationUserSettings(body?: Array<NotificationSettingRequest>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<NotificationSettingsResponse> {\n        return this.updateNotificationUserSettingsWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<NotificationSettingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Get a specific notification for the current user\n     * \n     * @param notificationId Id of the notification to get\n     */\n    public getNotificationWithHttpInfo(notificationId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<NotificationResponse>> {\n        const path = this.basePath + '/api/v202108/notification/${notificationId}'\n                    .replace('${' + 'notificationId' + '}', String(notificationId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'notificationId' is not null or undefined\n        if (notificationId === null || notificationId === undefined) {\n            throw new Error('Required parameter notificationId was null or undefined when calling getNotification.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<NotificationResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get total number of notifications that are unread and unarchived for the current user. Use lastCheckDateTimeUtc to get the number of new notifications since the passed in date and time. By default, only the latest 250 notifications will be taken into account. Use the &#39;noLimit&#39; query parameter to override this behavior.\n     * \n     * @param lastCheckDateTimeUtc Used when calculating the number of new notifications. Must be a UTC DateTime in the format yyyy-MM-ddTHH:mm:ssZ. If not passed the TotalNotifications and NewNotifications will be equal.\n     * @param noLimit If true, will return the badge totals for all of the user&#39;s notifications, not just the 250 most recent ones\n     */\n    public getNotificationBadgeTotalsWithHttpInfo(lastCheckDateTimeUtc?: Date, noLimit?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<NotificationBadgeResponse>> {\n        const path = this.basePath + '/api/v202108/notification/badge';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (lastCheckDateTimeUtc !== undefined) {\n            queryParameters = queryParameters.set('lastCheckDateTimeUtc', <any>lastCheckDateTimeUtc.toISOString());\n        }\n\n        if (noLimit !== undefined) {\n            queryParameters = queryParameters.set('noLimit', <any>noLimit);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<NotificationBadgeResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a specific notification&#39;s details for the current user\n     * \n     * @param notificationId Id of the notification to get\n     */\n    public getNotificationDetailsWithHttpInfo(notificationId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<NotificationDetailsResponse>> {\n        const path = this.basePath + '/api/v202108/notification/${notificationId}/detail'\n                    .replace('${' + 'notificationId' + '}', String(notificationId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'notificationId' is not null or undefined\n        if (notificationId === null || notificationId === undefined) {\n            throw new Error('Required parameter notificationId was null or undefined when calling getNotificationDetails.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<NotificationDetailsResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * The default notification settings assigned to new users\n     * \n     */\n    public getNotificationSystemSettingsWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<NotificationSettingsResponse>> {\n        const path = this.basePath + '/api/v202108/notification/systemsetting';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<NotificationSettingsResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a list of notification types\n     * \n     */\n    public getNotificationTypesWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<NotificationType>>> {\n        const path = this.basePath + '/api/v202108/notification/type';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<NotificationType>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * The notification settings for the current user\n     * \n     */\n    public getNotificationUserSettingsWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<NotificationSettingsResponse>> {\n        const path = this.basePath + '/api/v202108/notification/usersetting';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<NotificationSettingsResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get all notifications for the current user\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getNotificationsWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<NotificationResponse>>> {\n        const path = this.basePath + '/api/v202108/notification';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<NotificationResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Update a list of notifications based on the notification ids and action passed in Only notifications for the current user can be updated\n     * \n     * @param body List of notification ids and action to perform\n     */\n    public updateListOfNotificationsWithHttpInfo(body?: NotificationUpdateRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v202108/notification';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Update the default notification settings assigned to new users\n     * \n     * @param body Values to update the system notification settings.  If a setting is not passed it&#39;s value is not updated.\n     */\n    public updateNotificationSystemSettingsWithHttpInfo(body?: NotificationSystemSettingsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<NotificationSettingsResponse>> {\n        const path = this.basePath + '/api/v202108/notification/systemsetting';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<NotificationSettingsResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Update the notification settings for the current user\n     * \n     * @param body Values to update the system notification settings.  If a setting is not passed it&#39;s value is not updated.\n     */\n    public updateNotificationUserSettingsWithHttpInfo(body?: Array<NotificationSettingRequest>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<NotificationSettingsResponse>> {\n        const path = this.basePath + '/api/v202108/notification/usersetting';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<NotificationSettingsResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { DeleteReadingResponse } from '../model/deleteReadingResponse';\nimport { Reading } from '../model/reading';\nimport { ReadingCreate } from '../model/readingCreate';\nimport { ReadingDelete } from '../model/readingDelete';\nimport { ReadingResponse } from '../model/readingResponse';\nimport { Readings } from '../model/readings';\nimport { ReadingsObservation } from '../model/readingsObservation';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class ObservationService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Creates new readings\n     * \n     * @param body Data representing the readings being imported\n     */\n    public createReadings(body?: Array<ReadingCreate>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ReadingResponse> {\n        return this.createReadingsWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ReadingResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes one or more sets of meter readings.  Each set of meter readings to be deleted is on one channel and covers a time range signified by a begin and end date and time. The time range includes all readings greater than the begin time and less than or equal to the end date and time. To delete only one reading, set the begin and end date and time to the same value.\n     * \n     * @param body The channel id, begin date and time and end date and time of the set of meter readings to be deleted\n     */\n    public deleteReadings(body?: Array<ReadingDelete>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<DeleteReadingResponse> {\n        return this.deleteReadingsWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<DeleteReadingResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes a single interval data reading by its ID\n     * \n     * @param readingId Unique ID of the reading to delete\n     */\n    public deleteSingleReading(readingId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteSingleReadingWithHttpInfo(readingId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits a single interval data reading. Duplicate timestamps are not allowed for readings on a given channel. If the reading being edited has the same timestamp as another reading on the same channel, this end point throws an error\n     * \n     * @param readingId Unique ID of the reading to edit\n     * @param body Updated reading properties\n     */\n    public editSingleReading(readingId: number, body?: Reading, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ReadingsObservation> {\n        return this.editSingleReadingWithHttpInfo(readingId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ReadingsObservation>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves an array of readings\n     * \n     * @param channelId Specific Channel ID\n     * @param beginDate The starting date of readings to return\n     * @param endDate The end date of readings to return\n     * @param originalValue If &#39;true&#39;, returns the original observation value. If &#39;false&#39; returns the computed observation value based on the channel type. NOTE: this parameter is no longer used and has been deprecated.\n     */\n    public getReadings(channelId: number, beginDate?: Date, endDate?: Date, originalValue?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Readings> {\n        return this.getReadingsWithHttpInfo(channelId, beginDate, endDate, originalValue, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Readings>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Creates new readings\n     * \n     * @param body Data representing the readings being imported\n     */\n    public createReadingsWithHttpInfo(body?: Array<ReadingCreate>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ReadingResponse>> {\n        const path = this.basePath + '/api/v3/reading';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ReadingResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Deletes one or more sets of meter readings.  Each set of meter readings to be deleted is on one channel and covers a time range signified by a begin and end date and time. The time range includes all readings greater than the begin time and less than or equal to the end date and time. To delete only one reading, set the begin and end date and time to the same value.\n     * \n     * @param body The channel id, begin date and time and end date and time of the set of meter readings to be deleted\n     */\n    public deleteReadingsWithHttpInfo(body?: Array<ReadingDelete>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<DeleteReadingResponse>> {\n        const path = this.basePath + '/api/v3/reading';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<DeleteReadingResponse>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Deletes a single interval data reading by its ID\n     * \n     * @param readingId Unique ID of the reading to delete\n     */\n    public deleteSingleReadingWithHttpInfo(readingId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/reading/${readingId}'\n                    .replace('${' + 'readingId' + '}', String(readingId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'readingId' is not null or undefined\n        if (readingId === null || readingId === undefined) {\n            throw new Error('Required parameter readingId was null or undefined when calling deleteSingleReading.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Edits a single interval data reading. Duplicate timestamps are not allowed for readings on a given channel. If the reading being edited has the same timestamp as another reading on the same channel, this end point throws an error\n     * \n     * @param readingId Unique ID of the reading to edit\n     * @param body Updated reading properties\n     */\n    public editSingleReadingWithHttpInfo(readingId: number, body?: Reading, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ReadingsObservation>> {\n        const path = this.basePath + '/api/v3/reading/${readingId}'\n                    .replace('${' + 'readingId' + '}', String(readingId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'readingId' is not null or undefined\n        if (readingId === null || readingId === undefined) {\n            throw new Error('Required parameter readingId was null or undefined when calling editSingleReading.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ReadingsObservation>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Retrieves an array of readings\n     * \n     * @param channelId Specific Channel ID\n     * @param beginDate The starting date of readings to return\n     * @param endDate The end date of readings to return\n     * @param originalValue If &#39;true&#39;, returns the original observation value. If &#39;false&#39; returns the computed observation value based on the channel type. NOTE: this parameter is no longer used and has been deprecated.\n     */\n    public getReadingsWithHttpInfo(channelId: number, beginDate?: Date, endDate?: Date, originalValue?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Readings>> {\n        const path = this.basePath + '/api/v3/channel/${channelId}/reading'\n                    .replace('${' + 'channelId' + '}', String(channelId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'channelId' is not null or undefined\n        if (channelId === null || channelId === undefined) {\n            throw new Error('Required parameter channelId was null or undefined when calling getReadings.');\n        }\n        if (beginDate !== undefined) {\n            queryParameters = queryParameters.set('beginDate', <any>beginDate.toISOString());\n        }\n\n        if (endDate !== undefined) {\n            queryParameters = queryParameters.set('endDate', <any>endDate.toISOString());\n        }\n\n        if (originalValue !== undefined) {\n            queryParameters = queryParameters.set('originalValue', <any>originalValue);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Readings>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { ObservationTypeChild } from '../model/observationTypeChild';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class ObservationTypeService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Get the observation types for a given noun class code and/or noun code.\n     * \n     * @param filter \n     */\n    public getObservationTypes(filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<ObservationTypeChild>> {\n        return this.getObservationTypesWithHttpInfo(filter, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<ObservationTypeChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Get the observation types for a given noun class code and/or noun code.\n     * \n     * @param filter \n     */\n    public getObservationTypesWithHttpInfo(filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<ObservationTypeChild>>> {\n        const path = this.basePath + '/api/v3/observationtype';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<ObservationTypeChild>>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { EnergyProjectResponse } from '../model/energyProjectResponse';\nimport { EnergyStarPlaceHierarchyResponse } from '../model/energyStarPlaceHierarchyResponse';\nimport { EnergyStarPlaceLinkRequest } from '../model/energyStarPlaceLinkRequest';\nimport { EnergyStarPlaceLinkResponse } from '../model/energyStarPlaceLinkResponse';\nimport { EnergyStarPmProperty } from '../model/energyStarPmProperty';\nimport { OkObjectResult } from '../model/okObjectResult';\nimport { PlaceCreate } from '../model/placeCreate';\nimport { PlaceEdit } from '../model/placeEdit';\nimport { PlaceGroupMember } from '../model/placeGroupMember';\nimport { PlaceGroupResponse } from '../model/placeGroupResponse';\nimport { PlaceResponse } from '../model/placeResponse';\nimport { PlaceSizeChild } from '../model/placeSizeChild';\nimport { PlaceSizeCreate } from '../model/placeSizeCreate';\nimport { PlaceSubmissionTypeRequest } from '../model/placeSubmissionTypeRequest';\nimport { PlaceTypeRequest } from '../model/placeTypeRequest';\nimport { PlaceTypeResponse } from '../model/placeTypeResponse';\nimport { PlaceUDFResponse } from '../model/placeUDFResponse';\nimport { UDFFieldChild } from '../model/uDFFieldChild';\nimport { UDFValue } from '../model/uDFValue';\nimport { UpdateResult } from '../model/updateResult';\nimport { WatticsSite } from '../model/watticsSite';\nimport { WatticsSiteRequest } from '../model/watticsSiteRequest';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class PlaceService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Creates a place\n     * \n     * @param body Data representing the place being created\n     */\n    public createPlace(body?: PlaceCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<PlaceResponse> {\n        return this.createPlaceWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<PlaceResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Creates a place size version If a preceding place size version exists, the preceding record&#39;s end date will be changed to match the created record&#39;s begin date If a succeeding place size version exists the created records end date will match the succeeding version&#39;s begin date\n     * \n     * @param placeId The identifier of the place to add a place size to\n     * @param body Data representing the place size being created\n     */\n    public createPlaceSize(placeId: number, body?: PlaceSizeCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<PlaceSizeChild> {\n        return this.createPlaceSizeWithHttpInfo(placeId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<PlaceSizeChild>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Create a place type\n     * New place types will not be considered structures\n     * @param body Definition of new place type\n     */\n    public createPlaceType(body?: PlaceTypeRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<PlaceTypeResponse> {\n        return this.createPlaceTypeWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<PlaceTypeResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes a place\n     * \n     * @param placeId The identifier for the place being deleted\n     */\n    public deletePlace(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deletePlaceWithHttpInfo(placeId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete a place size version The preceding version&#39;s end date will be shifted to the deleted record&#39;s end date to prevent any gaps\n     * \n     * @param placeId The identifier of the place\n     * @param placeSizeId The identifier of the place size\n     */\n    public deletePlaceSize(placeId: number, placeSizeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deletePlaceSizeWithHttpInfo(placeId, placeSizeId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes the place type\n     * \n     * @param placeTypeId Unique identifier for the place type\n     */\n    public deletePlaceType(placeTypeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deletePlaceTypeWithHttpInfo(placeTypeId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Download file for a place custom field\n     * \n     * @param placeId \n     * @param udfId \n     */\n    public downloadPlaceCustomFieldFile(placeId: number, udfId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.downloadPlaceCustomFieldFileWithHttpInfo(placeId, udfId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit the ENERGY STAR linking information for this place and its meters. Set PmPropertyId/PmMeterId to null to unlink a property/meter. Set PmMeterId to -1 to auto-create a new meter.\n     * \n     * @param placeId The place identifier\n     * @param body Data representing the place link being edited\n     */\n    public editEnergyStarPlaceLink(placeId: number, body?: EnergyStarPlaceLinkRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EnergyStarPlaceLinkResponse> {\n        return this.editEnergyStarPlaceLinkWithHttpInfo(placeId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EnergyStarPlaceLinkResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits a place\n     * \n     * @param placeId The identifier for the place being edited\n     * @param body Data representing the place being edited\n     */\n    public editPlace(placeId: number, body?: PlaceEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<PlaceResponse> {\n        return this.editPlaceWithHttpInfo(placeId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<PlaceResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits a place&#39;s group memberships.  Note that all groups a place should belong to must be passed in. Passing in one group means that the place will belong to one group only,  even if it previously belonged to several.  Only manual groups assignments can be changed; auto groups are unaffected.\n     * \n     * @param placeId The place identifier whose group memberships are being edited\n     * @param body The groups the place will belong to\n     */\n    public editPlaceGroupMembership(placeId: number, body?: Array<PlaceGroupMember>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PlaceGroupResponse>> {\n        return this.editPlaceGroupMembershipWithHttpInfo(placeId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PlaceGroupResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * API endpoint which takes care of Create, Edit and Delete of new place sizes in bulk\n     * \n     * @param placeId The identifier of the place\n     * @param body Data representing the place size being created\n     */\n    public editPlaceSizeList(placeId: number, body?: Array<PlaceSizeCreate>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PlaceSizeChild>> {\n        return this.editPlaceSizeListWithHttpInfo(placeId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PlaceSizeChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit a current place type\n     * \n     * @param placeTypeId Unique identifier for the place type\n     * @param body Definition of new place type\n     */\n    public editPlaceType(placeTypeId: number, body?: PlaceTypeRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<PlaceTypeResponse> {\n        return this.editPlaceTypeWithHttpInfo(placeTypeId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<PlaceTypeResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits user defined field / custom field values for a particular place\n     * \n     * @param placeId The identifier for the place\n     * @param body Data representing the place user defined fields / custom fields being edited\n     */\n    public editPlaceUDFs(placeId: number, body?: Array<UDFValue>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<UDFFieldChild>> {\n        return this.editPlaceUDFsWithHttpInfo(placeId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<UDFFieldChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit SmartAnalytics (Wattics) data on a place\n     * \n     * @param placeId The place identifier for the place to edit\n     * @param body Identifier for the SmartAnalytics (Wattics) site to assign to the place\n     */\n    public editWatticsSiteLink(placeId: number, body?: WatticsSiteRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<WatticsSite> {\n        return this.editWatticsSiteLinkWithHttpInfo(placeId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<WatticsSite>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all Energy Projects for a particular place by placeId. For organizations it will be the rollup of its children&#39;s energy projects\n     * \n     * @param placeId The place identifier for which energy projects are being retrieved\n     */\n    public getEnergyProjectsForPlace(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<EnergyProjectResponse>> {\n        return this.getEnergyProjectsForPlaceWithHttpInfo(placeId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<EnergyProjectResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get the ENERGY STAR info for a place.\n     * \n     * @param placeId The place identifier\n     * @param verbose true by default.               When set to false the API will perform faster but will only retrieve PmPropertyId and PmPropertyName from Portfolio Manager.             PmPropertyUseType, PmFloorArea, PmFloorAreaUnits will be null.\n     */\n    public getEnergyStarPlace(placeId: number, verbose?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EnergyStarPmProperty> {\n        return this.getEnergyStarPlaceWithHttpInfo(placeId, verbose, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EnergyStarPmProperty>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get this place&#39;s ENERGY STAR child places\n     * \n     * @param placeId The place identifier\n     * @param filter \n     */\n    public getEnergyStarPlaceHierarchy(placeId: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<EnergyStarPlaceHierarchyResponse>> {\n        return this.getEnergyStarPlaceHierarchyWithHttpInfo(placeId, filter, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<EnergyStarPlaceHierarchyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get the ENERGY STAR linking information for this place and its meters.  PmPropertyId and PmMeterId will be null if no link yet exists.\n     * \n     * @param placeId The place identifier\n     */\n    public getEnergyStarPlaceLink(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EnergyStarPlaceLinkResponse> {\n        return this.getEnergyStarPlaceLinkWithHttpInfo(placeId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EnergyStarPlaceLinkResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get the ENERGY STAR metrics for a place.\n     * \n     * @param placeId The place identifier\n     * @param numberOfYears The number of years to go back from most recent score. Defaults to 2 years. If 0 is provided, will only include current score.\n     */\n    public getEnergyStarPlaceMetrics(placeId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EnergyStarPlaceHierarchyResponse> {\n        return this.getEnergyStarPlaceMetricsWithHttpInfo(placeId, numberOfYears, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EnergyStarPlaceHierarchyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves one place\n     * \n     * @param placeId The identifier for the place being retrieved\n     */\n    public getPlace(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<PlaceResponse> {\n        return this.getPlaceWithHttpInfo(placeId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<PlaceResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all Place Groups for a particular place by placeId\n     * \n     * @param placeId The place identifier for which group values are being retrieved\n     */\n    public getPlaceGroups(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PlaceGroupResponse>> {\n        return this.getPlaceGroupsWithHttpInfo(placeId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PlaceGroupResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves a place size record for a particular place\n     * \n     * @param placeId The identifier for the place being retrieved\n     * @param placeSizeId The identifier for the place size being retrieved\n     */\n    public getPlaceSize(placeId: number, placeSizeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<PlaceSizeChild> {\n        return this.getPlaceSizeWithHttpInfo(placeId, placeSizeId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<PlaceSizeChild>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all place size records for a particular place\n     * \n     * @param placeId The identifier for the place being retrieved\n     */\n    public getPlaceSizes(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PlaceSizeChild>> {\n        return this.getPlaceSizesWithHttpInfo(placeId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PlaceSizeChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves one place type\n     * \n     * @param placeTypeId Unique identifier for the place type\n     */\n    public getPlaceType(placeTypeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<PlaceTypeResponse> {\n        return this.getPlaceTypeWithHttpInfo(placeTypeId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<PlaceTypeResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all place types\n     * \n     * @param filter \n     */\n    public getPlaceTypes(filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PlaceTypeResponse>> {\n        return this.getPlaceTypesWithHttpInfo(filter, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PlaceTypeResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all user defined fields / custom fields for a particular place\n     * \n     * @param placeId The place identifier for which user defined field / custom field values are being retrieved\n     */\n    public getPlaceUdfs(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<UDFFieldChild>> {\n        return this.getPlaceUdfsWithHttpInfo(placeId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<UDFFieldChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all places\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlaces(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PlaceResponse>> {\n        return this.getPlacesWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PlaceResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all user defined fields / custom fields for all places\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlacesUdfs(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PlaceUDFResponse>> {\n        return this.getPlacesUdfsWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PlaceUDFResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Move list of places to be under parentPlaceId\n     * \n     * @param parentPlaceId The identifier for the new parent place\n     * @param body List of placeIds to move under the parentPlaceId\n     */\n    public movePlace(parentPlaceId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.movePlaceWithHttpInfo(parentPlaceId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Unlink a list of places and their child meters from ENERGY STAR\n     * \n     * @param body List of place identifiers to unlink from ENERGY STAR\n     */\n    public unlinkPlacesAndChildMetersFromEnergyStar(body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.unlinkPlacesAndChildMetersFromEnergyStarWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Update a list of places to be submitted to ENERGY STAR manually or automatically\n     * \n     * @param body The list of places to update, as well as the submission type to set\n     */\n    public updateEnergyStarSubmissionType(body?: PlaceSubmissionTypeRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.updateEnergyStarSubmissionTypeWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Creates a place\n     * \n     * @param body Data representing the place being created\n     */\n    public createPlaceWithHttpInfo(body?: PlaceCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<PlaceResponse>> {\n        const path = this.basePath + '/api/v3/place';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<PlaceResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Creates a place size version If a preceding place size version exists, the preceding record&#39;s end date will be changed to match the created record&#39;s begin date If a succeeding place size version exists the created records end date will match the succeeding version&#39;s begin date\n     * \n     * @param placeId The identifier of the place to add a place size to\n     * @param body Data representing the place size being created\n     */\n    public createPlaceSizeWithHttpInfo(placeId: number, body?: PlaceSizeCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<PlaceSizeChild>> {\n        const path = this.basePath + '/api/v3/place/${placeId}/size'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling createPlaceSize.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<PlaceSizeChild>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Create a place type\n     * New place types will not be considered structures\n     * @param body Definition of new place type\n     */\n    public createPlaceTypeWithHttpInfo(body?: PlaceTypeRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<PlaceTypeResponse>> {\n        const path = this.basePath + '/api/v3/place/placetype';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<PlaceTypeResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Deletes a place\n     * \n     * @param placeId The identifier for the place being deleted\n     */\n    public deletePlaceWithHttpInfo(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/place/${placeId}'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling deletePlace.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Delete a place size version The preceding version&#39;s end date will be shifted to the deleted record&#39;s end date to prevent any gaps\n     * \n     * @param placeId The identifier of the place\n     * @param placeSizeId The identifier of the place size\n     */\n    public deletePlaceSizeWithHttpInfo(placeId: number, placeSizeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/place/${placeId}/size/${placeSizeId}'\n                    .replace('${' + 'placeId' + '}', String(placeId))\n                    .replace('${' + 'placeSizeId' + '}', String(placeSizeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling deletePlaceSize.');\n        }\n        // verify required parameter 'placeSizeId' is not null or undefined\n        if (placeSizeId === null || placeSizeId === undefined) {\n            throw new Error('Required parameter placeSizeId was null or undefined when calling deletePlaceSize.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Deletes the place type\n     * \n     * @param placeTypeId Unique identifier for the place type\n     */\n    public deletePlaceTypeWithHttpInfo(placeTypeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/place/placetype/${placeTypeId}'\n                    .replace('${' + 'placeTypeId' + '}', String(placeTypeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeTypeId' is not null or undefined\n        if (placeTypeId === null || placeTypeId === undefined) {\n            throw new Error('Required parameter placeTypeId was null or undefined when calling deletePlaceType.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Download file for a place custom field\n     * \n     * @param placeId \n     * @param udfId \n     */\n    public downloadPlaceCustomFieldFileWithHttpInfo(placeId: number, udfId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202105/place/${placeId}/udf/${udfId}/download'\n                    .replace('${' + 'placeId' + '}', String(placeId))\n                    .replace('${' + 'udfId' + '}', String(udfId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling downloadPlaceCustomFieldFile.');\n        }\n        // verify required parameter 'udfId' is not null or undefined\n        if (udfId === null || udfId === undefined) {\n            throw new Error('Required parameter udfId was null or undefined when calling downloadPlaceCustomFieldFile.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Edit the ENERGY STAR linking information for this place and its meters. Set PmPropertyId/PmMeterId to null to unlink a property/meter. Set PmMeterId to -1 to auto-create a new meter.\n     * \n     * @param placeId The place identifier\n     * @param body Data representing the place link being edited\n     */\n    public editEnergyStarPlaceLinkWithHttpInfo(placeId: number, body?: EnergyStarPlaceLinkRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EnergyStarPlaceLinkResponse>> {\n        const path = this.basePath + '/api/v3/place/${placeId}/energyStar/link'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling editEnergyStarPlaceLink.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EnergyStarPlaceLinkResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edits a place\n     * \n     * @param placeId The identifier for the place being edited\n     * @param body Data representing the place being edited\n     */\n    public editPlaceWithHttpInfo(placeId: number, body?: PlaceEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<PlaceResponse>> {\n        const path = this.basePath + '/api/v3/place/${placeId}'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling editPlace.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<PlaceResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edits a place&#39;s group memberships.  Note that all groups a place should belong to must be passed in. Passing in one group means that the place will belong to one group only,  even if it previously belonged to several.  Only manual groups assignments can be changed; auto groups are unaffected.\n     * \n     * @param placeId The place identifier whose group memberships are being edited\n     * @param body The groups the place will belong to\n     */\n    public editPlaceGroupMembershipWithHttpInfo(placeId: number, body?: Array<PlaceGroupMember>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PlaceGroupResponse>>> {\n        const path = this.basePath + '/api/v3/place/${placeId}/group'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling editPlaceGroupMembership.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PlaceGroupResponse>>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * API endpoint which takes care of Create, Edit and Delete of new place sizes in bulk\n     * \n     * @param placeId The identifier of the place\n     * @param body Data representing the place size being created\n     */\n    public editPlaceSizeListWithHttpInfo(placeId: number, body?: Array<PlaceSizeCreate>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PlaceSizeChild>>> {\n        const path = this.basePath + '/api/v3/place/${placeId}/size'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling editPlaceSizeList.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PlaceSizeChild>>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edit a current place type\n     * \n     * @param placeTypeId Unique identifier for the place type\n     * @param body Definition of new place type\n     */\n    public editPlaceTypeWithHttpInfo(placeTypeId: number, body?: PlaceTypeRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<PlaceTypeResponse>> {\n        const path = this.basePath + '/api/v3/place/placetype/${placeTypeId}'\n                    .replace('${' + 'placeTypeId' + '}', String(placeTypeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeTypeId' is not null or undefined\n        if (placeTypeId === null || placeTypeId === undefined) {\n            throw new Error('Required parameter placeTypeId was null or undefined when calling editPlaceType.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<PlaceTypeResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edits user defined field / custom field values for a particular place\n     * \n     * @param placeId The identifier for the place\n     * @param body Data representing the place user defined fields / custom fields being edited\n     */\n    public editPlaceUDFsWithHttpInfo(placeId: number, body?: Array<UDFValue>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<UDFFieldChild>>> {\n        const path = this.basePath + '/api/v3/place/${placeId}/udf'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling editPlaceUDFs.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<UDFFieldChild>>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edit SmartAnalytics (Wattics) data on a place\n     * \n     * @param placeId The place identifier for the place to edit\n     * @param body Identifier for the SmartAnalytics (Wattics) site to assign to the place\n     */\n    public editWatticsSiteLinkWithHttpInfo(placeId: number, body?: WatticsSiteRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<WatticsSite>> {\n        const path = this.basePath + '/api/v202302/place/${placeId}/watticsSite'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling editWatticsSiteLink.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<WatticsSite>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all Energy Projects for a particular place by placeId. For organizations it will be the rollup of its children&#39;s energy projects\n     * \n     * @param placeId The place identifier for which energy projects are being retrieved\n     */\n    public getEnergyProjectsForPlaceWithHttpInfo(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<EnergyProjectResponse>>> {\n        const path = this.basePath + '/api/v3/place/${placeId}/project'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getEnergyProjectsForPlace.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<EnergyProjectResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get the ENERGY STAR info for a place.\n     * \n     * @param placeId The place identifier\n     * @param verbose true by default.               When set to false the API will perform faster but will only retrieve PmPropertyId and PmPropertyName from Portfolio Manager.             PmPropertyUseType, PmFloorArea, PmFloorAreaUnits will be null.\n     */\n    public getEnergyStarPlaceWithHttpInfo(placeId: number, verbose?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EnergyStarPmProperty>> {\n        const path = this.basePath + '/api/v3/place/${placeId}/energyStar'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getEnergyStarPlace.');\n        }\n        if (verbose !== undefined) {\n            queryParameters = queryParameters.set('verbose', <any>verbose);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EnergyStarPmProperty>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get this place&#39;s ENERGY STAR child places\n     * \n     * @param placeId The place identifier\n     * @param filter \n     */\n    public getEnergyStarPlaceHierarchyWithHttpInfo(placeId: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<EnergyStarPlaceHierarchyResponse>>> {\n        const path = this.basePath + '/api/v3/place/${placeId}/energyStar/hierarchy'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getEnergyStarPlaceHierarchy.');\n        }\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<EnergyStarPlaceHierarchyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get the ENERGY STAR linking information for this place and its meters.  PmPropertyId and PmMeterId will be null if no link yet exists.\n     * \n     * @param placeId The place identifier\n     */\n    public getEnergyStarPlaceLinkWithHttpInfo(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EnergyStarPlaceLinkResponse>> {\n        const path = this.basePath + '/api/v3/place/${placeId}/energyStar/link'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getEnergyStarPlaceLink.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EnergyStarPlaceLinkResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get the ENERGY STAR metrics for a place.\n     * \n     * @param placeId The place identifier\n     * @param numberOfYears The number of years to go back from most recent score. Defaults to 2 years. If 0 is provided, will only include current score.\n     */\n    public getEnergyStarPlaceMetricsWithHttpInfo(placeId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EnergyStarPlaceHierarchyResponse>> {\n        const path = this.basePath + '/api/v3/place/${placeId}/energyStar/metrics'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getEnergyStarPlaceMetrics.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EnergyStarPlaceHierarchyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves one place\n     * \n     * @param placeId The identifier for the place being retrieved\n     */\n    public getPlaceWithHttpInfo(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<PlaceResponse>> {\n        const path = this.basePath + '/api/v3/place/${placeId}'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getPlace.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<PlaceResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all Place Groups for a particular place by placeId\n     * \n     * @param placeId The place identifier for which group values are being retrieved\n     */\n    public getPlaceGroupsWithHttpInfo(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PlaceGroupResponse>>> {\n        const path = this.basePath + '/api/v3/place/${placeId}/group'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getPlaceGroups.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PlaceGroupResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves a place size record for a particular place\n     * \n     * @param placeId The identifier for the place being retrieved\n     * @param placeSizeId The identifier for the place size being retrieved\n     */\n    public getPlaceSizeWithHttpInfo(placeId: number, placeSizeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<PlaceSizeChild>> {\n        const path = this.basePath + '/api/v3/place/${placeId}/size/${placeSizeId}'\n                    .replace('${' + 'placeId' + '}', String(placeId))\n                    .replace('${' + 'placeSizeId' + '}', String(placeSizeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getPlaceSize.');\n        }\n        // verify required parameter 'placeSizeId' is not null or undefined\n        if (placeSizeId === null || placeSizeId === undefined) {\n            throw new Error('Required parameter placeSizeId was null or undefined when calling getPlaceSize.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<PlaceSizeChild>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all place size records for a particular place\n     * \n     * @param placeId The identifier for the place being retrieved\n     */\n    public getPlaceSizesWithHttpInfo(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PlaceSizeChild>>> {\n        const path = this.basePath + '/api/v3/place/${placeId}/size'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getPlaceSizes.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PlaceSizeChild>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves one place type\n     * \n     * @param placeTypeId Unique identifier for the place type\n     */\n    public getPlaceTypeWithHttpInfo(placeTypeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<PlaceTypeResponse>> {\n        const path = this.basePath + '/api/v3/place/placetype/${placeTypeId}'\n                    .replace('${' + 'placeTypeId' + '}', String(placeTypeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeTypeId' is not null or undefined\n        if (placeTypeId === null || placeTypeId === undefined) {\n            throw new Error('Required parameter placeTypeId was null or undefined when calling getPlaceType.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<PlaceTypeResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all place types\n     * \n     * @param filter \n     */\n    public getPlaceTypesWithHttpInfo(filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PlaceTypeResponse>>> {\n        const path = this.basePath + '/api/v3/place/placetype';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PlaceTypeResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all user defined fields / custom fields for a particular place\n     * \n     * @param placeId The place identifier for which user defined field / custom field values are being retrieved\n     */\n    public getPlaceUdfsWithHttpInfo(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<UDFFieldChild>>> {\n        const path = this.basePath + '/api/v3/place/${placeId}/udf'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getPlaceUdfs.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<UDFFieldChild>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all places\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlacesWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PlaceResponse>>> {\n        const path = this.basePath + '/api/v3/place';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PlaceResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all user defined fields / custom fields for all places\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlacesUdfsWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PlaceUDFResponse>>> {\n        const path = this.basePath + '/api/v3/place/udf';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PlaceUDFResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Move list of places to be under parentPlaceId\n     * \n     * @param parentPlaceId The identifier for the new parent place\n     * @param body List of placeIds to move under the parentPlaceId\n     */\n    public movePlaceWithHttpInfo(parentPlaceId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/parentPlace/${parentPlaceId}/place'\n                    .replace('${' + 'parentPlaceId' + '}', String(parentPlaceId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'parentPlaceId' is not null or undefined\n        if (parentPlaceId === null || parentPlaceId === undefined) {\n            throw new Error('Required parameter parentPlaceId was null or undefined when calling movePlace.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Unlink a list of places and their child meters from ENERGY STAR\n     * \n     * @param body List of place identifiers to unlink from ENERGY STAR\n     */\n    public unlinkPlacesAndChildMetersFromEnergyStarWithHttpInfo(body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v202110/place/energyStar/unlink';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Update a list of places to be submitted to ENERGY STAR manually or automatically\n     * \n     * @param body The list of places to update, as well as the submission type to set\n     */\n    public updateEnergyStarSubmissionTypeWithHttpInfo(body?: PlaceSubmissionTypeRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v202110/place/energyStar/submissionType';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { BenchmarkCategoryResponse } from '../model/benchmarkCategoryResponse';\nimport { BenchmarkSettingsEdit } from '../model/benchmarkSettingsEdit';\nimport { BenchmarkSettingsResponse } from '../model/benchmarkSettingsResponse';\nimport { BenchmarkValueRequest } from '../model/benchmarkValueRequest';\nimport { BenchmarkValuesResponse } from '../model/benchmarkValuesResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class PlaceBenchmarkService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Creates a place benchmark value If a preceding benchmark value exists, the preceding record&#39;s end date will be changed to match the created records begin date If a succeeding benchmark value exists, the created record&#39;s end date will match the succeeding benchmarks begin date\n     * \n     * @param benchmarkIndicator Indicator for the benchmark, can be 1, 2, or 3\n     * @param placeId The place that the benchmark is on\n     * @param body The new begin date and value for the benchmark\n     */\n    public createPlaceBenchmarkValue(benchmarkIndicator: number, placeId: number, body?: BenchmarkValueRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BenchmarkValuesResponse> {\n        return this.createPlaceBenchmarkValueWithHttpInfo(benchmarkIndicator, placeId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BenchmarkValuesResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete a single benchmark value. If a preceding benchmark value exists, the preceding record’s end date will be changed to prevent any gaps in benchmark values\n     * \n     * @param benchmarkIndicator Indicator for the benchmark\n     * @param placeId Indicator for the place\n     * @param placeBenchmarkId Indicator for the individual benchmark value\n     */\n    public deleteBenchmarkValue(benchmarkIndicator: number, placeId: number, placeBenchmarkId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteBenchmarkValueWithHttpInfo(benchmarkIndicator, placeId, placeBenchmarkId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete the settings for the place benchmark defined by the benchmarkIndicator. Deletes all corresponding place benchmark values that were defined for that indicator. Updates user-defined autogroup membership for groups that contained filters for that indicator.\n     * \n     * @param benchmarkIndicator Indicator for the benchmark\n     */\n    public deletePlaceBenchmarkSetting(benchmarkIndicator: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deletePlaceBenchmarkSettingWithHttpInfo(benchmarkIndicator, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * The user can edit the category and name for each benchmark If a benchmark has not been configured, it is configured User cannot delete a benchmark from this endpoint If the benchmark dto is null or not passed the API will ignore it If the benchmark dto is not null, the category and name are required\n     * \n     * @param body Dto containing what to edit on benchmark\n     */\n    public editPlaceBenchmarkSettings(body?: BenchmarkSettingsEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BenchmarkSettingsResponse> {\n        return this.editPlaceBenchmarkSettingsWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BenchmarkSettingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit all values for a benchmark factor on a place\n     * \n     * @param benchmarkIndicator Indicator for the benchmark\n     * @param placeId \n     * @param body \n     */\n    public editPlaceBenchmarkValues(benchmarkIndicator: number, placeId: number, body?: Array<BenchmarkValueRequest>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BenchmarkValuesResponse> {\n        return this.editPlaceBenchmarkValuesWithHttpInfo(benchmarkIndicator, placeId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BenchmarkValuesResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves benchmark values for a place\n     * \n     * @param benchmarkIndicator Indicator for the benchmark\n     * @param placeId Identifier for the place\n     */\n    public getBenchmarkValues(benchmarkIndicator: number, placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BenchmarkValuesResponse> {\n        return this.getBenchmarkValuesWithHttpInfo(benchmarkIndicator, placeId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BenchmarkValuesResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get all place benchmark categories in the database\n     * \n     */\n    public getPlaceBenchmarkCategories(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BenchmarkCategoryResponse>> {\n        return this.getPlaceBenchmarkCategoriesWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BenchmarkCategoryResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get all the place benchmark names and categories for the owner\n     * \n     */\n    public getPlaceBenchmarkSettings(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BenchmarkSettingsResponse> {\n        return this.getPlaceBenchmarkSettingsWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BenchmarkSettingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Updates a place benchmark value If the begin date is being modified, the following will happen: * Records that now precede and previously preceded this benchmark will have their end dates modified to prevent gaps in benchmarks * If a succeeding benchmark value exists for the new begin date, the end date will be modified to match the succeeding benchmarks end date\n     * \n     * @param benchmarkIndicator Indicator for the benchmark, can be 1, 2, or 3\n     * @param placeId The place that the benchmark is on\n     * @param placeBenchmarkId The identifier for the benchmark being updated\n     * @param body The new begin date and value for the benchmark\n     */\n    public updatePlaceBenchmarkValue(benchmarkIndicator: number, placeId: number, placeBenchmarkId: number, body?: BenchmarkValueRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BenchmarkValuesResponse> {\n        return this.updatePlaceBenchmarkValueWithHttpInfo(benchmarkIndicator, placeId, placeBenchmarkId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BenchmarkValuesResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Creates a place benchmark value If a preceding benchmark value exists, the preceding record&#39;s end date will be changed to match the created records begin date If a succeeding benchmark value exists, the created record&#39;s end date will match the succeeding benchmarks begin date\n     * \n     * @param benchmarkIndicator Indicator for the benchmark, can be 1, 2, or 3\n     * @param placeId The place that the benchmark is on\n     * @param body The new begin date and value for the benchmark\n     */\n    public createPlaceBenchmarkValueWithHttpInfo(benchmarkIndicator: number, placeId: number, body?: BenchmarkValueRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BenchmarkValuesResponse>> {\n        const path = this.basePath + '/api/v3/placeBenchmark/${benchmarkIndicator}/place/${placeId}/benchmarkValue'\n                    .replace('${' + 'benchmarkIndicator' + '}', String(benchmarkIndicator))\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'benchmarkIndicator' is not null or undefined\n        if (benchmarkIndicator === null || benchmarkIndicator === undefined) {\n            throw new Error('Required parameter benchmarkIndicator was null or undefined when calling createPlaceBenchmarkValue.');\n        }\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling createPlaceBenchmarkValue.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BenchmarkValuesResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Delete a single benchmark value. If a preceding benchmark value exists, the preceding record’s end date will be changed to prevent any gaps in benchmark values\n     * \n     * @param benchmarkIndicator Indicator for the benchmark\n     * @param placeId Indicator for the place\n     * @param placeBenchmarkId Indicator for the individual benchmark value\n     */\n    public deleteBenchmarkValueWithHttpInfo(benchmarkIndicator: number, placeId: number, placeBenchmarkId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/placeBenchmark/${benchmarkIndicator}/place/${placeId}/benchmarkValue/${placeBenchmarkId}'\n                    .replace('${' + 'benchmarkIndicator' + '}', String(benchmarkIndicator))\n                    .replace('${' + 'placeId' + '}', String(placeId))\n                    .replace('${' + 'placeBenchmarkId' + '}', String(placeBenchmarkId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'benchmarkIndicator' is not null or undefined\n        if (benchmarkIndicator === null || benchmarkIndicator === undefined) {\n            throw new Error('Required parameter benchmarkIndicator was null or undefined when calling deleteBenchmarkValue.');\n        }\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling deleteBenchmarkValue.');\n        }\n        // verify required parameter 'placeBenchmarkId' is not null or undefined\n        if (placeBenchmarkId === null || placeBenchmarkId === undefined) {\n            throw new Error('Required parameter placeBenchmarkId was null or undefined when calling deleteBenchmarkValue.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Delete the settings for the place benchmark defined by the benchmarkIndicator. Deletes all corresponding place benchmark values that were defined for that indicator. Updates user-defined autogroup membership for groups that contained filters for that indicator.\n     * \n     * @param benchmarkIndicator Indicator for the benchmark\n     */\n    public deletePlaceBenchmarkSettingWithHttpInfo(benchmarkIndicator: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/placeBenchmark/${benchmarkIndicator}/setting'\n                    .replace('${' + 'benchmarkIndicator' + '}', String(benchmarkIndicator));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'benchmarkIndicator' is not null or undefined\n        if (benchmarkIndicator === null || benchmarkIndicator === undefined) {\n            throw new Error('Required parameter benchmarkIndicator was null or undefined when calling deletePlaceBenchmarkSetting.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * The user can edit the category and name for each benchmark If a benchmark has not been configured, it is configured User cannot delete a benchmark from this endpoint If the benchmark dto is null or not passed the API will ignore it If the benchmark dto is not null, the category and name are required\n     * \n     * @param body Dto containing what to edit on benchmark\n     */\n    public editPlaceBenchmarkSettingsWithHttpInfo(body?: BenchmarkSettingsEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BenchmarkSettingsResponse>> {\n        const path = this.basePath + '/api/v3/placeBenchmark/setting';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BenchmarkSettingsResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edit all values for a benchmark factor on a place\n     * \n     * @param benchmarkIndicator Indicator for the benchmark\n     * @param placeId \n     * @param body \n     */\n    public editPlaceBenchmarkValuesWithHttpInfo(benchmarkIndicator: number, placeId: number, body?: Array<BenchmarkValueRequest>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BenchmarkValuesResponse>> {\n        const path = this.basePath + '/api/v3/placeBenchmark/${benchmarkIndicator}/place/${placeId}'\n                    .replace('${' + 'benchmarkIndicator' + '}', String(benchmarkIndicator))\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'benchmarkIndicator' is not null or undefined\n        if (benchmarkIndicator === null || benchmarkIndicator === undefined) {\n            throw new Error('Required parameter benchmarkIndicator was null or undefined when calling editPlaceBenchmarkValues.');\n        }\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling editPlaceBenchmarkValues.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BenchmarkValuesResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Retrieves benchmark values for a place\n     * \n     * @param benchmarkIndicator Indicator for the benchmark\n     * @param placeId Identifier for the place\n     */\n    public getBenchmarkValuesWithHttpInfo(benchmarkIndicator: number, placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BenchmarkValuesResponse>> {\n        const path = this.basePath + '/api/v3/placeBenchmark/${benchmarkIndicator}/place/${placeId}/benchmarkValue'\n                    .replace('${' + 'benchmarkIndicator' + '}', String(benchmarkIndicator))\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'benchmarkIndicator' is not null or undefined\n        if (benchmarkIndicator === null || benchmarkIndicator === undefined) {\n            throw new Error('Required parameter benchmarkIndicator was null or undefined when calling getBenchmarkValues.');\n        }\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getBenchmarkValues.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BenchmarkValuesResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get all place benchmark categories in the database\n     * \n     */\n    public getPlaceBenchmarkCategoriesWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BenchmarkCategoryResponse>>> {\n        const path = this.basePath + '/api/v3/placeBenchmark/category';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BenchmarkCategoryResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get all the place benchmark names and categories for the owner\n     * \n     */\n    public getPlaceBenchmarkSettingsWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BenchmarkSettingsResponse>> {\n        const path = this.basePath + '/api/v3/placeBenchmark/setting';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BenchmarkSettingsResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Updates a place benchmark value If the begin date is being modified, the following will happen: * Records that now precede and previously preceded this benchmark will have their end dates modified to prevent gaps in benchmarks * If a succeeding benchmark value exists for the new begin date, the end date will be modified to match the succeeding benchmarks end date\n     * \n     * @param benchmarkIndicator Indicator for the benchmark, can be 1, 2, or 3\n     * @param placeId The place that the benchmark is on\n     * @param placeBenchmarkId The identifier for the benchmark being updated\n     * @param body The new begin date and value for the benchmark\n     */\n    public updatePlaceBenchmarkValueWithHttpInfo(benchmarkIndicator: number, placeId: number, placeBenchmarkId: number, body?: BenchmarkValueRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BenchmarkValuesResponse>> {\n        const path = this.basePath + '/api/v3/placeBenchmark/${benchmarkIndicator}/place/${placeId}/benchmarkValue/${placeBenchmarkId}'\n                    .replace('${' + 'benchmarkIndicator' + '}', String(benchmarkIndicator))\n                    .replace('${' + 'placeId' + '}', String(placeId))\n                    .replace('${' + 'placeBenchmarkId' + '}', String(placeBenchmarkId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'benchmarkIndicator' is not null or undefined\n        if (benchmarkIndicator === null || benchmarkIndicator === undefined) {\n            throw new Error('Required parameter benchmarkIndicator was null or undefined when calling updatePlaceBenchmarkValue.');\n        }\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling updatePlaceBenchmarkValue.');\n        }\n        // verify required parameter 'placeBenchmarkId' is not null or undefined\n        if (placeBenchmarkId === null || placeBenchmarkId === undefined) {\n            throw new Error('Required parameter placeBenchmarkId was null or undefined when calling updatePlaceBenchmarkValue.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BenchmarkValuesResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { PlaceDigestActualAndCalendarizedMonthlyResponse } from '../model/placeDigestActualAndCalendarizedMonthlyResponse';\nimport { PlaceDigestActualAndCalendarizedYearlyResponse } from '../model/placeDigestActualAndCalendarizedYearlyResponse';\nimport { PlaceDigestComparisonResponse } from '../model/placeDigestComparisonResponse';\nimport { PlaceDigestEnergyUseIntensity } from '../model/placeDigestEnergyUseIntensity';\nimport { PlaceDigestNormalizedMonthlyResponse } from '../model/placeDigestNormalizedMonthlyResponse';\nimport { PlaceDigestNormalizedYearlyResponse } from '../model/placeDigestNormalizedYearlyResponse';\nimport { PlaceDigestSavingsMonthlyResponse } from '../model/placeDigestSavingsMonthlyResponse';\nimport { PlaceDigestSavingsYearlyResponse } from '../model/placeDigestSavingsYearlyResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class PlaceDigestService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Retrieves energy use intensity data for a place.  If data is requested for an organization, then all the places under the organization will be rolled up.\n     * \n     * @param placeId The place to retrieve data for\n     */\n    public getEuiChartData(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PlaceDigestEnergyUseIntensity>> {\n        return this.getEuiChartDataWithHttpInfo(placeId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PlaceDigestEnergyUseIntensity>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by building/organization for a given number of years- Result includes cost, use, unit cost on a monthly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param placeId The place to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for actual and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     */\n    public getPlaceActualMonthly(placeId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<PlaceDigestActualAndCalendarizedMonthlyResponse> {\n        return this.getPlaceActualMonthlyWithHttpInfo(placeId, numberOfYears, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<PlaceDigestActualAndCalendarizedMonthlyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by building/organization for a given number of years- Result includes cost, use, unit cost on a monthly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for actual and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlaceActualMonthlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PlaceDigestActualAndCalendarizedMonthlyResponse>> {\n        return this.getPlaceActualMonthlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PlaceDigestActualAndCalendarizedMonthlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by building/organization for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param placeId The place to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     */\n    public getPlaceActualYearly(placeId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<PlaceDigestActualAndCalendarizedYearlyResponse> {\n        return this.getPlaceActualYearlyWithHttpInfo(placeId, numberOfYears, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<PlaceDigestActualAndCalendarizedYearlyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by building/organization for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlaceActualYearlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PlaceDigestActualAndCalendarizedYearlyResponse>> {\n        return this.getPlaceActualYearlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PlaceDigestActualAndCalendarizedYearlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Return the total cost and cost for each commodity under a place for comparison Example calculating the current and previous ranges:  Today is 2022-10-06 chartMonthsToExclude &#x3D; 2, numMonths &#x3D; 6, comparisonYearsAgo &#x3D; 3 CurrentPeriodRange is 202203 - 202208 and PreviousPeriodRange is 201903 - 201908\n     * \n     * @param placeId Id of the place to lookup\n     * @param chartMonthsToExclude Optional, the number of months to exclude from intensity data, 0 includes all months including the current one. Defaults to the system setting otherwise 0.\n     * @param numMonths Optional, the number of months of intensity data to include, the end month is respective of chartMonthsToExclude. Defaults to 12.\n     * @param comparisonYearsAgo The comparisonYearsAgo is the number of years to go back to do the comparison. Defaults to 1.\n     */\n    public getPlaceCalendarizedCostComparison(placeId: number, chartMonthsToExclude?: number, numMonths?: number, comparisonYearsAgo?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<PlaceDigestComparisonResponse> {\n        return this.getPlaceCalendarizedCostComparisonWithHttpInfo(placeId, chartMonthsToExclude, numMonths, comparisonYearsAgo, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<PlaceDigestComparisonResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Return the total ghg and ghg for each commodity under a place for comparison Example calculating the current and previous ranges:  Today is 2022-10-06 chartMonthsToExclude &#x3D; 2, numMonths &#x3D; 6, comparisonYearsAgo &#x3D; 3 CurrentPeriodRange is 202203 - 202208 and PreviousPeriodRange is 201903 - 201908\n     * \n     * @param placeId Id of the place to lookup\n     * @param chartMonthsToExclude Optional, the number of months to exclude from intensity data, 0 includes all months including the current one. Defaults to the system setting otherwise 0.\n     * @param numMonths Optional, the number of months of intensity data to include, the end month is respective of chartMonthsToExclude. Defaults to 12.\n     * @param comparisonYearsAgo The comparisonYearsAgo is the number of years to go back to do the comparison. Defaults to 1.\n     */\n    public getPlaceCalendarizedGhgComparison(placeId: number, chartMonthsToExclude?: number, numMonths?: number, comparisonYearsAgo?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<PlaceDigestComparisonResponse> {\n        return this.getPlaceCalendarizedGhgComparisonWithHttpInfo(placeId, chartMonthsToExclude, numMonths, comparisonYearsAgo, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<PlaceDigestComparisonResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up calendarized billing data by building/organization for a given number of years- Result includes cost, use, unit cost on a monthly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param placeId The place to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for calendarized and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     */\n    public getPlaceCalendarizedMonthly(placeId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<PlaceDigestActualAndCalendarizedMonthlyResponse> {\n        return this.getPlaceCalendarizedMonthlyWithHttpInfo(placeId, numberOfYears, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<PlaceDigestActualAndCalendarizedMonthlyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up calendarized billing data by building/organization for a given number of years- Result includes cost, use, unit cost on a monthly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for calendarized and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlaceCalendarizedMonthlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PlaceDigestActualAndCalendarizedMonthlyResponse>> {\n        return this.getPlaceCalendarizedMonthlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PlaceDigestActualAndCalendarizedMonthlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up calendarized billing data by building/organization for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param placeId The place to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     */\n    public getPlaceCalendarizedYearly(placeId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<PlaceDigestActualAndCalendarizedYearlyResponse> {\n        return this.getPlaceCalendarizedYearlyWithHttpInfo(placeId, numberOfYears, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<PlaceDigestActualAndCalendarizedYearlyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up calendarized billing data by building/organization for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlaceCalendarizedYearlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PlaceDigestActualAndCalendarizedYearlyResponse>> {\n        return this.getPlaceCalendarizedYearlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PlaceDigestActualAndCalendarizedYearlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up normalized billing data by building/organization for a given number of years- Result includes cost, use, unit cost on a monthly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param placeId The place to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for normalized and savings, and 24 or 26 (if 13 accounting periods) for normalized and normalized)\n     */\n    public getPlaceNomalizedMonthly(placeId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<PlaceDigestNormalizedMonthlyResponse> {\n        return this.getPlaceNomalizedMonthlyWithHttpInfo(placeId, numberOfYears, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<PlaceDigestNormalizedMonthlyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up normalized billing data by building/organization for a given number of years- Result includes use on a monthly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for normalized and savings, and 24 or 26 (if 13 accounting periods) for normalized and normalized)\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlaceNomalizedMonthlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PlaceDigestNormalizedMonthlyResponse>> {\n        return this.getPlaceNomalizedMonthlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PlaceDigestNormalizedMonthlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Return the total use and use for each commodity under a place for comparison Example calculating the current and previous ranges:  Today is 2022-10-06 chartMonthsToExclude &#x3D; 2, numMonths &#x3D; 6, comparisonYearsAgo &#x3D; 3 CurrentPeriodRange is 202203 - 202208 and PreviousPeriodRange is 201903 - 201908\n     * \n     * @param placeId Id of the place to lookup\n     * @param chartMonthsToExclude Optional, the number of months to exclude from intensity data, 0 includes all months including the current one. Defaults to the system setting otherwise 0.\n     * @param numMonths Optional, the number of months of intensity data to include, the end month is respective of chartMonthsToExclude. Defaults to 12.\n     * @param comparisonYearsAgo The comparisonYearsAgo is the number of years to go back to do the comparison. Defaults to 1.\n     */\n    public getPlaceNormalizedUseComparison(placeId: number, chartMonthsToExclude?: number, numMonths?: number, comparisonYearsAgo?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<PlaceDigestComparisonResponse> {\n        return this.getPlaceNormalizedUseComparisonWithHttpInfo(placeId, chartMonthsToExclude, numMonths, comparisonYearsAgo, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<PlaceDigestComparisonResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up normalized billing data by building/organization for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param placeId The place to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     */\n    public getPlaceNormalizedYearly(placeId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<PlaceDigestNormalizedYearlyResponse> {\n        return this.getPlaceNormalizedYearlyWithHttpInfo(placeId, numberOfYears, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<PlaceDigestNormalizedYearlyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up normalized billing data by building/organization for a given number of years- Result include use on an yearly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlaceNormalizedYearlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PlaceDigestNormalizedYearlyResponse>> {\n        return this.getPlaceNormalizedYearlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PlaceDigestNormalizedYearlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up savings data by building/organization for a given number of years- Result includes cost, use, unit cost on a monthly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param placeId The place to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for actual and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     */\n    public getPlaceSavingsMonthly(placeId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<PlaceDigestSavingsMonthlyResponse> {\n        return this.getPlaceSavingsMonthlyWithHttpInfo(placeId, numberOfYears, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<PlaceDigestSavingsMonthlyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up savings data by building/organization for a given number of years- Result includes cost and use savings on a monthly basis.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years/24 months\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlaceSavingsMonthlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PlaceDigestSavingsMonthlyResponse>> {\n        return this.getPlaceSavingsMonthlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PlaceDigestSavingsMonthlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * \n     * \n     * @param placeId \n     * @param numberOfYears \n     */\n    public getPlaceSavingsYearly(placeId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<PlaceDigestSavingsYearlyResponse> {\n        return this.getPlaceSavingsYearlyWithHttpInfo(placeId, numberOfYears, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<PlaceDigestSavingsYearlyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up savings billing data by building/organization for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes a commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlaceSavingsYearlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PlaceDigestSavingsYearlyResponse>> {\n        return this.getPlaceSavingsYearlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PlaceDigestSavingsYearlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Retrieves energy use intensity data for a place.  If data is requested for an organization, then all the places under the organization will be rolled up.\n     * \n     * @param placeId The place to retrieve data for\n     */\n    public getEuiChartDataWithHttpInfo(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PlaceDigestEnergyUseIntensity>>> {\n        const path = this.basePath + '/api/v3/place/${placeId}/digest/energyUseIntensity'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getEuiChartData.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PlaceDigestEnergyUseIntensity>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by building/organization for a given number of years- Result includes cost, use, unit cost on a monthly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param placeId The place to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for actual and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     */\n    public getPlaceActualMonthlyWithHttpInfo(placeId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<PlaceDigestActualAndCalendarizedMonthlyResponse>> {\n        const path = this.basePath + '/api/v3/place/${placeId}/digest/actual/monthly'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getPlaceActualMonthly.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<PlaceDigestActualAndCalendarizedMonthlyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by building/organization for a given number of years- Result includes cost, use, unit cost on a monthly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for actual and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlaceActualMonthlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PlaceDigestActualAndCalendarizedMonthlyResponse>>> {\n        const path = this.basePath + '/api/v3/place/digest/actual/monthly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PlaceDigestActualAndCalendarizedMonthlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by building/organization for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param placeId The place to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     */\n    public getPlaceActualYearlyWithHttpInfo(placeId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<PlaceDigestActualAndCalendarizedYearlyResponse>> {\n        const path = this.basePath + '/api/v3/place/${placeId}/digest/actual/yearly'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getPlaceActualYearly.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<PlaceDigestActualAndCalendarizedYearlyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by building/organization for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlaceActualYearlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PlaceDigestActualAndCalendarizedYearlyResponse>>> {\n        const path = this.basePath + '/api/v3/place/digest/actual/yearly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PlaceDigestActualAndCalendarizedYearlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Return the total cost and cost for each commodity under a place for comparison Example calculating the current and previous ranges:  Today is 2022-10-06 chartMonthsToExclude &#x3D; 2, numMonths &#x3D; 6, comparisonYearsAgo &#x3D; 3 CurrentPeriodRange is 202203 - 202208 and PreviousPeriodRange is 201903 - 201908\n     * \n     * @param placeId Id of the place to lookup\n     * @param chartMonthsToExclude Optional, the number of months to exclude from intensity data, 0 includes all months including the current one. Defaults to the system setting otherwise 0.\n     * @param numMonths Optional, the number of months of intensity data to include, the end month is respective of chartMonthsToExclude. Defaults to 12.\n     * @param comparisonYearsAgo The comparisonYearsAgo is the number of years to go back to do the comparison. Defaults to 1.\n     */\n    public getPlaceCalendarizedCostComparisonWithHttpInfo(placeId: number, chartMonthsToExclude?: number, numMonths?: number, comparisonYearsAgo?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<PlaceDigestComparisonResponse>> {\n        const path = this.basePath + '/api/v202208/place/${placeId}/digest/calendarized/cost/comparison'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getPlaceCalendarizedCostComparison.');\n        }\n        if (chartMonthsToExclude !== undefined) {\n            queryParameters = queryParameters.set('chartMonthsToExclude', <any>chartMonthsToExclude);\n        }\n\n        if (numMonths !== undefined) {\n            queryParameters = queryParameters.set('numMonths', <any>numMonths);\n        }\n\n        if (comparisonYearsAgo !== undefined) {\n            queryParameters = queryParameters.set('comparisonYearsAgo', <any>comparisonYearsAgo);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<PlaceDigestComparisonResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Return the total ghg and ghg for each commodity under a place for comparison Example calculating the current and previous ranges:  Today is 2022-10-06 chartMonthsToExclude &#x3D; 2, numMonths &#x3D; 6, comparisonYearsAgo &#x3D; 3 CurrentPeriodRange is 202203 - 202208 and PreviousPeriodRange is 201903 - 201908\n     * \n     * @param placeId Id of the place to lookup\n     * @param chartMonthsToExclude Optional, the number of months to exclude from intensity data, 0 includes all months including the current one. Defaults to the system setting otherwise 0.\n     * @param numMonths Optional, the number of months of intensity data to include, the end month is respective of chartMonthsToExclude. Defaults to 12.\n     * @param comparisonYearsAgo The comparisonYearsAgo is the number of years to go back to do the comparison. Defaults to 1.\n     */\n    public getPlaceCalendarizedGhgComparisonWithHttpInfo(placeId: number, chartMonthsToExclude?: number, numMonths?: number, comparisonYearsAgo?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<PlaceDigestComparisonResponse>> {\n        const path = this.basePath + '/api/v202208/place/${placeId}/digest/calendarized/ghg/comparison'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getPlaceCalendarizedGhgComparison.');\n        }\n        if (chartMonthsToExclude !== undefined) {\n            queryParameters = queryParameters.set('chartMonthsToExclude', <any>chartMonthsToExclude);\n        }\n\n        if (numMonths !== undefined) {\n            queryParameters = queryParameters.set('numMonths', <any>numMonths);\n        }\n\n        if (comparisonYearsAgo !== undefined) {\n            queryParameters = queryParameters.set('comparisonYearsAgo', <any>comparisonYearsAgo);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<PlaceDigestComparisonResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up calendarized billing data by building/organization for a given number of years- Result includes cost, use, unit cost on a monthly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param placeId The place to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for calendarized and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     */\n    public getPlaceCalendarizedMonthlyWithHttpInfo(placeId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<PlaceDigestActualAndCalendarizedMonthlyResponse>> {\n        const path = this.basePath + '/api/v3/place/${placeId}/digest/calendarized/monthly'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getPlaceCalendarizedMonthly.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<PlaceDigestActualAndCalendarizedMonthlyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up calendarized billing data by building/organization for a given number of years- Result includes cost, use, unit cost on a monthly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for calendarized and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlaceCalendarizedMonthlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PlaceDigestActualAndCalendarizedMonthlyResponse>>> {\n        const path = this.basePath + '/api/v3/place/digest/calendarized/monthly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PlaceDigestActualAndCalendarizedMonthlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up calendarized billing data by building/organization for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param placeId The place to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     */\n    public getPlaceCalendarizedYearlyWithHttpInfo(placeId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<PlaceDigestActualAndCalendarizedYearlyResponse>> {\n        const path = this.basePath + '/api/v3/place/${placeId}/digest/calendarized/yearly'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getPlaceCalendarizedYearly.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<PlaceDigestActualAndCalendarizedYearlyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up calendarized billing data by building/organization for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlaceCalendarizedYearlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PlaceDigestActualAndCalendarizedYearlyResponse>>> {\n        const path = this.basePath + '/api/v3/place/digest/calendarized/yearly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PlaceDigestActualAndCalendarizedYearlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up normalized billing data by building/organization for a given number of years- Result includes cost, use, unit cost on a monthly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param placeId The place to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for normalized and savings, and 24 or 26 (if 13 accounting periods) for normalized and normalized)\n     */\n    public getPlaceNomalizedMonthlyWithHttpInfo(placeId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<PlaceDigestNormalizedMonthlyResponse>> {\n        const path = this.basePath + '/api/v3/place/${placeId}/digest/normalized/monthly'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getPlaceNomalizedMonthly.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<PlaceDigestNormalizedMonthlyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up normalized billing data by building/organization for a given number of years- Result includes use on a monthly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for normalized and savings, and 24 or 26 (if 13 accounting periods) for normalized and normalized)\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlaceNomalizedMonthlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PlaceDigestNormalizedMonthlyResponse>>> {\n        const path = this.basePath + '/api/v3/place/digest/normalized/monthly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PlaceDigestNormalizedMonthlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Return the total use and use for each commodity under a place for comparison Example calculating the current and previous ranges:  Today is 2022-10-06 chartMonthsToExclude &#x3D; 2, numMonths &#x3D; 6, comparisonYearsAgo &#x3D; 3 CurrentPeriodRange is 202203 - 202208 and PreviousPeriodRange is 201903 - 201908\n     * \n     * @param placeId Id of the place to lookup\n     * @param chartMonthsToExclude Optional, the number of months to exclude from intensity data, 0 includes all months including the current one. Defaults to the system setting otherwise 0.\n     * @param numMonths Optional, the number of months of intensity data to include, the end month is respective of chartMonthsToExclude. Defaults to 12.\n     * @param comparisonYearsAgo The comparisonYearsAgo is the number of years to go back to do the comparison. Defaults to 1.\n     */\n    public getPlaceNormalizedUseComparisonWithHttpInfo(placeId: number, chartMonthsToExclude?: number, numMonths?: number, comparisonYearsAgo?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<PlaceDigestComparisonResponse>> {\n        const path = this.basePath + '/api/v202208/place/${placeId}/digest/normalized/use/comparison'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getPlaceNormalizedUseComparison.');\n        }\n        if (chartMonthsToExclude !== undefined) {\n            queryParameters = queryParameters.set('chartMonthsToExclude', <any>chartMonthsToExclude);\n        }\n\n        if (numMonths !== undefined) {\n            queryParameters = queryParameters.set('numMonths', <any>numMonths);\n        }\n\n        if (comparisonYearsAgo !== undefined) {\n            queryParameters = queryParameters.set('comparisonYearsAgo', <any>comparisonYearsAgo);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<PlaceDigestComparisonResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up normalized billing data by building/organization for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param placeId The place to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     */\n    public getPlaceNormalizedYearlyWithHttpInfo(placeId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<PlaceDigestNormalizedYearlyResponse>> {\n        const path = this.basePath + '/api/v3/place/${placeId}/digest/normalized/yearly'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getPlaceNormalizedYearly.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<PlaceDigestNormalizedYearlyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up normalized billing data by building/organization for a given number of years- Result include use on an yearly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlaceNormalizedYearlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PlaceDigestNormalizedYearlyResponse>>> {\n        const path = this.basePath + '/api/v3/place/digest/normalized/yearly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PlaceDigestNormalizedYearlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up savings data by building/organization for a given number of years- Result includes cost, use, unit cost on a monthly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param placeId The place to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for actual and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     */\n    public getPlaceSavingsMonthlyWithHttpInfo(placeId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<PlaceDigestSavingsMonthlyResponse>> {\n        const path = this.basePath + '/api/v3/place/${placeId}/digest/savings/monthly'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getPlaceSavingsMonthly.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<PlaceDigestSavingsMonthlyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up savings data by building/organization for a given number of years- Result includes cost and use savings on a monthly basis.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years/24 months\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlaceSavingsMonthlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PlaceDigestSavingsMonthlyResponse>>> {\n        const path = this.basePath + '/api/v3/place/digest/savings/monthly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PlaceDigestSavingsMonthlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * \n     * \n     * @param placeId \n     * @param numberOfYears \n     */\n    public getPlaceSavingsYearlyWithHttpInfo(placeId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<PlaceDigestSavingsYearlyResponse>> {\n        const path = this.basePath + '/api/v3/place/${placeId}/digest/savings/yearly'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getPlaceSavingsYearly.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<PlaceDigestSavingsYearlyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up savings billing data by building/organization for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes a commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlaceSavingsYearlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PlaceDigestSavingsYearlyResponse>>> {\n        const path = this.basePath + '/api/v3/place/digest/savings/yearly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PlaceDigestSavingsYearlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { FilterResponse } from '../model/filterResponse';\nimport { GroupMemberRequest } from '../model/groupMemberRequest';\nimport { GroupPlaceGroupMember } from '../model/groupPlaceGroupMember';\nimport { GroupPlaceGroupResponse } from '../model/groupPlaceGroupResponse';\nimport { PlaceCategoryRequest } from '../model/placeCategoryRequest';\nimport { PlaceCategoryResponse } from '../model/placeCategoryResponse';\nimport { PlaceGroupRequest } from '../model/placeGroupRequest';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class PlaceGroupService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Creates a place group category\n     * \n     * @param body Data representing the place group category being created\n     */\n    public createPlaceCategory(body?: PlaceCategoryRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<PlaceCategoryResponse> {\n        return this.createPlaceCategoryWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<PlaceCategoryResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Create a place group\n     * \n     * @param body Data representing the place group being created\n     */\n    public createPlaceGroup(body?: PlaceGroupRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<GroupPlaceGroupResponse> {\n        return this.createPlaceGroupWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<GroupPlaceGroupResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete a place group category\n     * \n     * @param categoryId Id of the category to delete\n     */\n    public deletePlaceCategory(categoryId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deletePlaceCategoryWithHttpInfo(categoryId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete a user-created place group\n     * \n     * @param placeGroupId \n     */\n    public deletePlaceGroup(placeGroupId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deletePlaceGroupWithHttpInfo(placeGroupId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Update a place group category\n     * \n     * @param categoryId Id of the category to update\n     * @param body Data to update the place group category\n     */\n    public editPlaceCategory(categoryId: number, body?: PlaceCategoryRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<PlaceCategoryResponse> {\n        return this.editPlaceCategoryWithHttpInfo(categoryId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<PlaceCategoryResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit a place group\n     * \n     * @param placeGroupId Id of the group to edit\n     * @param body Data representing the place group being edited\n     */\n    public editPlaceGroup(placeGroupId: number, body?: PlaceGroupRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<GroupPlaceGroupResponse> {\n        return this.editPlaceGroupWithHttpInfo(placeGroupId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<GroupPlaceGroupResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Gets a list of place groups\n     * \n     * @param filter \n     */\n    public getAllPlaceGroups(filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<GroupPlaceGroupResponse>> {\n        return this.getAllPlaceGroupsWithHttpInfo(filter, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<GroupPlaceGroupResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Gets a list of place categories\n     * \n     */\n    public getPlaceCategories(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PlaceCategoryResponse>> {\n        return this.getPlaceCategoriesWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PlaceCategoryResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieve a Place Group Category\n     * \n     * @param categoryId The identifier for the place group category being retrieved\n     */\n    public getPlaceCategory(categoryId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<PlaceCategoryResponse> {\n        return this.getPlaceCategoryWithHttpInfo(categoryId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<PlaceCategoryResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Gets a place group\n     * \n     * @param placeGroupId \n     */\n    public getPlaceGroup(placeGroupId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<GroupPlaceGroupResponse> {\n        return this.getPlaceGroupWithHttpInfo(placeGroupId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<GroupPlaceGroupResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Gets a list of place group members\n     * \n     * @param placeGroupId \n     * @param alwaysLimitByTopmost \n     */\n    public getPlaceGroupMembers(placeGroupId: number, alwaysLimitByTopmost?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<GroupPlaceGroupMember>> {\n        return this.getPlaceGroupMembersWithHttpInfo(placeGroupId, alwaysLimitByTopmost, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<GroupPlaceGroupMember>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Gets a list of filters that can be used to create Place Groups\n     * \n     */\n    public getUserDefinedAutoPlaceGroupFilters(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<FilterResponse>> {\n        return this.getUserDefinedAutoPlaceGroupFiltersWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<FilterResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Include all group members in charts\n     * \n     * @param placeGroupId \n     */\n    public includeAllPlaceGroupMemberInCharts(placeGroupId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.includeAllPlaceGroupMemberInChartsWithHttpInfo(placeGroupId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Refreshes group membership for all user defined auto groups\n     * \n     */\n    public recalculateAllUserPlaceAutoGroupsMembership(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.recalculateAllUserPlaceAutoGroupsMembershipWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Refreshes group membership for a user defined auto group\n     * \n     * @param placeGroupId The place group to refresh\n     */\n    public recalculateUserPlaceAutoGroupMemebership(placeGroupId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<GroupPlaceGroupResponse> {\n        return this.recalculateUserPlaceAutoGroupMemebershipWithHttpInfo(placeGroupId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<GroupPlaceGroupResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Update a group member&#39;s include in charts flag\n     * \n     * @param placeGroupId \n     * @param placeId \n     * @param body \n     */\n    public updatePlaceGroupMember(placeGroupId: number, placeId: number, body?: GroupMemberRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<GroupPlaceGroupMember> {\n        return this.updatePlaceGroupMemberWithHttpInfo(placeGroupId, placeId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<GroupPlaceGroupMember>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Creates a place group category\n     * \n     * @param body Data representing the place group category being created\n     */\n    public createPlaceCategoryWithHttpInfo(body?: PlaceCategoryRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<PlaceCategoryResponse>> {\n        const path = this.basePath + '/api/v3/placeGroup/category';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<PlaceCategoryResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Create a place group\n     * \n     * @param body Data representing the place group being created\n     */\n    public createPlaceGroupWithHttpInfo(body?: PlaceGroupRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<GroupPlaceGroupResponse>> {\n        const path = this.basePath + '/api/v3/placeGroup';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<GroupPlaceGroupResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Delete a place group category\n     * \n     * @param categoryId Id of the category to delete\n     */\n    public deletePlaceCategoryWithHttpInfo(categoryId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/placeGroup/category/${categoryId}'\n                    .replace('${' + 'categoryId' + '}', String(categoryId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'categoryId' is not null or undefined\n        if (categoryId === null || categoryId === undefined) {\n            throw new Error('Required parameter categoryId was null or undefined when calling deletePlaceCategory.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Delete a user-created place group\n     * \n     * @param placeGroupId \n     */\n    public deletePlaceGroupWithHttpInfo(placeGroupId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/placeGroup/${placeGroupId}'\n                    .replace('${' + 'placeGroupId' + '}', String(placeGroupId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeGroupId' is not null or undefined\n        if (placeGroupId === null || placeGroupId === undefined) {\n            throw new Error('Required parameter placeGroupId was null or undefined when calling deletePlaceGroup.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Update a place group category\n     * \n     * @param categoryId Id of the category to update\n     * @param body Data to update the place group category\n     */\n    public editPlaceCategoryWithHttpInfo(categoryId: number, body?: PlaceCategoryRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<PlaceCategoryResponse>> {\n        const path = this.basePath + '/api/v3/placeGroup/category/${categoryId}'\n                    .replace('${' + 'categoryId' + '}', String(categoryId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'categoryId' is not null or undefined\n        if (categoryId === null || categoryId === undefined) {\n            throw new Error('Required parameter categoryId was null or undefined when calling editPlaceCategory.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<PlaceCategoryResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edit a place group\n     * \n     * @param placeGroupId Id of the group to edit\n     * @param body Data representing the place group being edited\n     */\n    public editPlaceGroupWithHttpInfo(placeGroupId: number, body?: PlaceGroupRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<GroupPlaceGroupResponse>> {\n        const path = this.basePath + '/api/v3/placeGroup/${placeGroupId}'\n                    .replace('${' + 'placeGroupId' + '}', String(placeGroupId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeGroupId' is not null or undefined\n        if (placeGroupId === null || placeGroupId === undefined) {\n            throw new Error('Required parameter placeGroupId was null or undefined when calling editPlaceGroup.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<GroupPlaceGroupResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Gets a list of place groups\n     * \n     * @param filter \n     */\n    public getAllPlaceGroupsWithHttpInfo(filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<GroupPlaceGroupResponse>>> {\n        const path = this.basePath + '/api/v3/placeGroup';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<GroupPlaceGroupResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Gets a list of place categories\n     * \n     */\n    public getPlaceCategoriesWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PlaceCategoryResponse>>> {\n        const path = this.basePath + '/api/v3/placeGroup/category';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PlaceCategoryResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieve a Place Group Category\n     * \n     * @param categoryId The identifier for the place group category being retrieved\n     */\n    public getPlaceCategoryWithHttpInfo(categoryId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<PlaceCategoryResponse>> {\n        const path = this.basePath + '/api/v3/placeGroup/category/${categoryId}'\n                    .replace('${' + 'categoryId' + '}', String(categoryId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'categoryId' is not null or undefined\n        if (categoryId === null || categoryId === undefined) {\n            throw new Error('Required parameter categoryId was null or undefined when calling getPlaceCategory.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<PlaceCategoryResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Gets a place group\n     * \n     * @param placeGroupId \n     */\n    public getPlaceGroupWithHttpInfo(placeGroupId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<GroupPlaceGroupResponse>> {\n        const path = this.basePath + '/api/v3/placeGroup/${placeGroupId}'\n                    .replace('${' + 'placeGroupId' + '}', String(placeGroupId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeGroupId' is not null or undefined\n        if (placeGroupId === null || placeGroupId === undefined) {\n            throw new Error('Required parameter placeGroupId was null or undefined when calling getPlaceGroup.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<GroupPlaceGroupResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Gets a list of place group members\n     * \n     * @param placeGroupId \n     * @param alwaysLimitByTopmost \n     */\n    public getPlaceGroupMembersWithHttpInfo(placeGroupId: number, alwaysLimitByTopmost?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<GroupPlaceGroupMember>>> {\n        const path = this.basePath + '/api/v3/placeGroup/${placeGroupId}/member'\n                    .replace('${' + 'placeGroupId' + '}', String(placeGroupId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeGroupId' is not null or undefined\n        if (placeGroupId === null || placeGroupId === undefined) {\n            throw new Error('Required parameter placeGroupId was null or undefined when calling getPlaceGroupMembers.');\n        }\n        if (alwaysLimitByTopmost !== undefined) {\n            queryParameters = queryParameters.set('alwaysLimitByTopmost', <any>alwaysLimitByTopmost);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<GroupPlaceGroupMember>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Gets a list of filters that can be used to create Place Groups\n     * \n     */\n    public getUserDefinedAutoPlaceGroupFiltersWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<FilterResponse>>> {\n        const path = this.basePath + '/api/v3/placeGroup/filters';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<FilterResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Include all group members in charts\n     * \n     * @param placeGroupId \n     */\n    public includeAllPlaceGroupMemberInChartsWithHttpInfo(placeGroupId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/placeGroup/${placeGroupId}/member/includeInCharts'\n                    .replace('${' + 'placeGroupId' + '}', String(placeGroupId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeGroupId' is not null or undefined\n        if (placeGroupId === null || placeGroupId === undefined) {\n            throw new Error('Required parameter placeGroupId was null or undefined when calling includeAllPlaceGroupMemberInCharts.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Refreshes group membership for all user defined auto groups\n     * \n     */\n    public recalculateAllUserPlaceAutoGroupsMembershipWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/placeGroup/updateUserAutoGroups';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Refreshes group membership for a user defined auto group\n     * \n     * @param placeGroupId The place group to refresh\n     */\n    public recalculateUserPlaceAutoGroupMemebershipWithHttpInfo(placeGroupId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<GroupPlaceGroupResponse>> {\n        const path = this.basePath + '/api/v3/placeGroup/${placeGroupId}/updateUserAutoGroup'\n                    .replace('${' + 'placeGroupId' + '}', String(placeGroupId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeGroupId' is not null or undefined\n        if (placeGroupId === null || placeGroupId === undefined) {\n            throw new Error('Required parameter placeGroupId was null or undefined when calling recalculateUserPlaceAutoGroupMemebership.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<GroupPlaceGroupResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Update a group member&#39;s include in charts flag\n     * \n     * @param placeGroupId \n     * @param placeId \n     * @param body \n     */\n    public updatePlaceGroupMemberWithHttpInfo(placeGroupId: number, placeId: number, body?: GroupMemberRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<GroupPlaceGroupMember>> {\n        const path = this.basePath + '/api/v3/placeGroup/${placeGroupId}/member/${placeId}'\n                    .replace('${' + 'placeGroupId' + '}', String(placeGroupId))\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeGroupId' is not null or undefined\n        if (placeGroupId === null || placeGroupId === undefined) {\n            throw new Error('Required parameter placeGroupId was null or undefined when calling updatePlaceGroupMember.');\n        }\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling updatePlaceGroupMember.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<GroupPlaceGroupMember>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { PlaceGroupDigestAreaDemandRankingResponse } from '../model/placeGroupDigestAreaDemandRankingResponse';\nimport { PlaceGroupDigestBenchmarkRankingResponse } from '../model/placeGroupDigestBenchmarkRankingResponse';\nimport { PlaceGroupDigestWeatherRankingResponse } from '../model/placeGroupDigestWeatherRankingResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class PlaceGroupDigestService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Retrieves ranking data by place group.\n     * Depending on the \\&quot;chart\\&quot; parameter retrieved ranking data could be cost, use, or demand per area, cost or use per day, heating sensitivity or cooling sensitivity Specify values for any query parameters whose database values are to be overridden. For the heating sensitivity and cooling sensitivity charts we sort by weather sensitivity (slope) and exclude non-weather meters          **PLEASE NOTE: As shown in the table above, this API endpoint returns different response types based on the \\&quot;chart\\&quot; value. Despite what you see below regarding HTTP status codes for each response type, _all_ of these response types will return 200 OK.**  | Chart              | Response Type                                | | ------------------ | -------------------------------------------- | | areaCost           | PlaceGroupDigestAreaRankingResponseDTO       | | areaUse            | PlaceGroupDigestAreaRankingResponseDTO       | | cost               | PlaceGroupDigestRankingResponseDTO           | | use                | PlaceGroupDigestRankingResponseDTO           | | areaDemand         | PlaceGroupDigestAreaDemandRankingResponseDTO | | coolingSensitivity | PlaceGroupDigestWeatherRankingResponseDTO    | | heatingSensitivity | PlaceGroupDigestWeatherRankingResponseDTO    | | benchmark1Use      | PlaceGroupDigestBenchmarkRankingResponseDTO  | | benchmark2Use      | PlaceGroupDigestBenchmarkRankingResponseDTO  | | benchmark3Use      | PlaceGroupDigestBenchmarkRankingResponseDTO  | | benchmark1Cost     | PlaceGroupDigestBenchmarkRankingResponseDTO  | | benchmark2Cost     | PlaceGroupDigestBenchmarkRankingResponseDTO  | | benchmark3Cost     | PlaceGroupDigestBenchmarkRankingResponseDTO  |\n     * @param groupId The place group to retrieve data for\n     * @param dataView The desired data view - actual, calendarized, normalized\n     * @param chart The desired chart - areacost, areause, areademand, cost, use, heatingsensitivity, coolingsensitivity, benchmark1use, benchmark1cost, benchmark2use, benchmark2cost, benchmark3use, benchmark3cost\n     * @param billingPeriodOption The billing period option - last12periods, currentyear, lastfiscalyear, custom (optional)\n     * @param startPeriod The custom start period (optional)\n     * @param endPeriod The custom end period (optional)\n     * @param commodityId Id of commodity to filter by (optional)\n     * @param commodityCategoryId Id of commodity category to filter by (optional)\n     * @param highToLowRanking Ranking from high to low, or low to high? (optional)\n     * @param showExcludedMembers Show group members excluded from the group? (optional)\n     * @param showZeroAverages Show group members whose ranking averages are zero? (optional)\n     */\n    public getPlaceGroupRanking(groupId: number, dataView: string, chart: string, billingPeriodOption?: string, startPeriod?: number, endPeriod?: number, commodityId?: number, commodityCategoryId?: number, highToLowRanking?: boolean, showExcludedMembers?: boolean, showZeroAverages?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<PlaceGroupDigestAreaDemandRankingResponse> {\n        return this.getPlaceGroupRankingWithHttpInfo(groupId, dataView, chart, billingPeriodOption, startPeriod, endPeriod, commodityId, commodityCategoryId, highToLowRanking, showExcludedMembers, showZeroAverages, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<PlaceGroupDigestAreaDemandRankingResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Retrieves ranking data by place group.\n     * Depending on the \\&quot;chart\\&quot; parameter retrieved ranking data could be cost, use, or demand per area, cost or use per day, heating sensitivity or cooling sensitivity Specify values for any query parameters whose database values are to be overridden. For the heating sensitivity and cooling sensitivity charts we sort by weather sensitivity (slope) and exclude non-weather meters          **PLEASE NOTE: As shown in the table above, this API endpoint returns different response types based on the \\&quot;chart\\&quot; value. Despite what you see below regarding HTTP status codes for each response type, _all_ of these response types will return 200 OK.**  | Chart              | Response Type                                | | ------------------ | -------------------------------------------- | | areaCost           | PlaceGroupDigestAreaRankingResponseDTO       | | areaUse            | PlaceGroupDigestAreaRankingResponseDTO       | | cost               | PlaceGroupDigestRankingResponseDTO           | | use                | PlaceGroupDigestRankingResponseDTO           | | areaDemand         | PlaceGroupDigestAreaDemandRankingResponseDTO | | coolingSensitivity | PlaceGroupDigestWeatherRankingResponseDTO    | | heatingSensitivity | PlaceGroupDigestWeatherRankingResponseDTO    | | benchmark1Use      | PlaceGroupDigestBenchmarkRankingResponseDTO  | | benchmark2Use      | PlaceGroupDigestBenchmarkRankingResponseDTO  | | benchmark3Use      | PlaceGroupDigestBenchmarkRankingResponseDTO  | | benchmark1Cost     | PlaceGroupDigestBenchmarkRankingResponseDTO  | | benchmark2Cost     | PlaceGroupDigestBenchmarkRankingResponseDTO  | | benchmark3Cost     | PlaceGroupDigestBenchmarkRankingResponseDTO  |\n     * @param groupId The place group to retrieve data for\n     * @param dataView The desired data view - actual, calendarized, normalized\n     * @param chart The desired chart - areacost, areause, areademand, cost, use, heatingsensitivity, coolingsensitivity, benchmark1use, benchmark1cost, benchmark2use, benchmark2cost, benchmark3use, benchmark3cost\n     * @param billingPeriodOption The billing period option - last12periods, currentyear, lastfiscalyear, custom (optional)\n     * @param startPeriod The custom start period (optional)\n     * @param endPeriod The custom end period (optional)\n     * @param commodityId Id of commodity to filter by (optional)\n     * @param commodityCategoryId Id of commodity category to filter by (optional)\n     * @param highToLowRanking Ranking from high to low, or low to high? (optional)\n     * @param showExcludedMembers Show group members excluded from the group? (optional)\n     * @param showZeroAverages Show group members whose ranking averages are zero? (optional)\n     */\n    public getPlaceGroupRankingWithHttpInfo(groupId: number, dataView: string, chart: string, billingPeriodOption?: string, startPeriod?: number, endPeriod?: number, commodityId?: number, commodityCategoryId?: number, highToLowRanking?: boolean, showExcludedMembers?: boolean, showZeroAverages?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<PlaceGroupDigestAreaDemandRankingResponse>> {\n        const path = this.basePath + '/api/v3/placeGroup/${groupId}/digest/${dataView}/${chart}'\n                    .replace('${' + 'groupId' + '}', String(groupId))\n                    .replace('${' + 'dataView' + '}', String(dataView))\n                    .replace('${' + 'chart' + '}', String(chart));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'groupId' is not null or undefined\n        if (groupId === null || groupId === undefined) {\n            throw new Error('Required parameter groupId was null or undefined when calling getPlaceGroupRanking.');\n        }\n        // verify required parameter 'dataView' is not null or undefined\n        if (dataView === null || dataView === undefined) {\n            throw new Error('Required parameter dataView was null or undefined when calling getPlaceGroupRanking.');\n        }\n        // verify required parameter 'chart' is not null or undefined\n        if (chart === null || chart === undefined) {\n            throw new Error('Required parameter chart was null or undefined when calling getPlaceGroupRanking.');\n        }\n        if (billingPeriodOption !== undefined) {\n            queryParameters = queryParameters.set('billingPeriodOption', <any>billingPeriodOption);\n        }\n\n        if (startPeriod !== undefined) {\n            queryParameters = queryParameters.set('startPeriod', <any>startPeriod);\n        }\n\n        if (endPeriod !== undefined) {\n            queryParameters = queryParameters.set('endPeriod', <any>endPeriod);\n        }\n\n        if (commodityId !== undefined) {\n            queryParameters = queryParameters.set('commodityId', <any>commodityId);\n        }\n\n        if (commodityCategoryId !== undefined) {\n            queryParameters = queryParameters.set('commodityCategoryId', <any>commodityCategoryId);\n        }\n\n        if (highToLowRanking !== undefined) {\n            queryParameters = queryParameters.set('highToLowRanking', <any>highToLowRanking);\n        }\n\n        if (showExcludedMembers !== undefined) {\n            queryParameters = queryParameters.set('showExcludedMembers', <any>showExcludedMembers);\n        }\n\n        if (showZeroAverages !== undefined) {\n            queryParameters = queryParameters.set('showZeroAverages', <any>showZeroAverages);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<PlaceGroupDigestAreaDemandRankingResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { PostalCodeResponse } from '../model/postalCodeResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class PostalCodeService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Retrieves the city, state, country, and weather station for a postal code\n     * \n     * @param postalCode \n     */\n    public getPostalCode(postalCode: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<PostalCodeResponse> {\n        return this.getPostalCodeWithHttpInfo(postalCode, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<PostalCodeResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Retrieves the city, state, country, and weather station for a postal code\n     * \n     * @param postalCode \n     */\n    public getPostalCodeWithHttpInfo(postalCode: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<PostalCodeResponse>> {\n        const path = this.basePath + '/api/v3/postalcode/${postalCode}'\n                    .replace('${' + 'postalCode' + '}', String(postalCode));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'postalCode' is not null or undefined\n        if (postalCode === null || postalCode === undefined) {\n            throw new Error('Required parameter postalCode was null or undefined when calling getPostalCode.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<PostalCodeResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { PrimaryUseCreate } from '../model/primaryUseCreate';\nimport { PrimaryUseResponse } from '../model/primaryUseResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class PrimaryUseService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Creates a Primary Use\n     * \n     * @param body Data representing the Primary Use being created\n     */\n    public createPrimaryUse(body?: PrimaryUseCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<PrimaryUseResponse> {\n        return this.createPrimaryUseWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<PrimaryUseResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes a primary use\n     * \n     * @param primaryUseId The identifier for the primary use being deleted\n     */\n    public deletePrimaryUse(primaryUseId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deletePrimaryUseWithHttpInfo(primaryUseId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all Primary Uses. The array of Primary Uses can be filtered by Primary Use type. Possible values for this filter include: \\&quot;meter\\&quot;, \\&quot;place\\&quot;. See the filter property for more details\n     * \n     * @param filter \n     */\n    public getPrimaryUses(filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PrimaryUseResponse>> {\n        return this.getPrimaryUsesWithHttpInfo(filter, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PrimaryUseResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Creates a Primary Use\n     * \n     * @param body Data representing the Primary Use being created\n     */\n    public createPrimaryUseWithHttpInfo(body?: PrimaryUseCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<PrimaryUseResponse>> {\n        const path = this.basePath + '/api/v3/primaryuse';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<PrimaryUseResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Deletes a primary use\n     * \n     * @param primaryUseId The identifier for the primary use being deleted\n     */\n    public deletePrimaryUseWithHttpInfo(primaryUseId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/primaryuse/${primaryUseId}'\n                    .replace('${' + 'primaryUseId' + '}', String(primaryUseId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'primaryUseId' is not null or undefined\n        if (primaryUseId === null || primaryUseId === undefined) {\n            throw new Error('Required parameter primaryUseId was null or undefined when calling deletePrimaryUse.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all Primary Uses. The array of Primary Uses can be filtered by Primary Use type. Possible values for this filter include: \\&quot;meter\\&quot;, \\&quot;place\\&quot;. See the filter property for more details\n     * \n     * @param filter \n     */\n    public getPrimaryUsesWithHttpInfo(filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PrimaryUseResponse>>> {\n        const path = this.basePath + '/api/v3/primaryuse';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PrimaryUseResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { RateCreate } from '../model/rateCreate';\nimport { RateEdit } from '../model/rateEdit';\nimport { RateResponse } from '../model/rateResponse';\nimport { RateVersionRequest } from '../model/rateVersionRequest';\nimport { RateVersionResponse } from '../model/rateVersionResponse';\nimport { UnitResponse } from '../model/unitResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class RateService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Create a rate schedule\n     * \n     * @param body The properties of the rate schedule to be created\n     */\n    public createRate(body?: RateCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<RateResponse> {\n        return this.createRateWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<RateResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Create a rate schedule version\n     * Allows the user to create a new version for a rate schedule for use in chargeback scenarios where use or demand cost for calculated bills must be created from a predefined unit cost.          ### Validation         * Account and meter line items     * Subtotal calculation type is not supported  ### Other Remarks * Inserting a rate version before an existing version will set the new version&#39;s end date to the effective date of the subsequent version. * Null values are acceptable for use and demand unit costs. However, for chargeback bills to calculate correctly, these values must be provided.\n     * @param rateId Unique identifier of the rate schedule to receive the new version\n     * @param body The properties of the rate schedule version to be created\n     */\n    public createRateVersion(rateId: number, body?: RateVersionRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<RateVersionResponse> {\n        return this.createRateVersionWithHttpInfo(rateId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<RateVersionResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete a rate schedule\n     * \n     * @param rateId Unique identifier of the rate schedule to be deleted\n     */\n    public deleteRate(rateId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteRateWithHttpInfo(rateId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete a version of a rate schedule\n     * ### Validation * The last remaining rate version may not be deleted  ### Other Remarks * When a rate version is deleted, if there is a preceding rate version, then its end date will be reset to the end date of the deleted rate version.\n     * @param rateId Unique identifier of the rate schedule to which the version being deleted belongs\n     * @param versionId Unique identifier of the rate schedule version to delete\n     */\n    public deleteRateVersion(rateId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteRateVersionWithHttpInfo(rateId, versionId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Download file for a rate custom field\n     * \n     * @param rateId \n     * @param versionId \n     * @param udfId \n     */\n    public downloadRateCustomFieldFile(rateId: number, versionId: number, udfId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.downloadRateCustomFieldFileWithHttpInfo(rateId, versionId, udfId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit a rate\n     * \n     * @param rateId Unique identifier of the rate schedule to be edited\n     * @param body Updated properties of the rate schedule to be edited\n     */\n    public editRate(rateId: number, body?: RateEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<RateResponse> {\n        return this.editRateWithHttpInfo(rateId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<RateResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit a rate schedule version\n     * ### Validation * Effective date of the edited version     * Must be after the effective date of the previous version     * Must be prior to the effective date of the next version * Account and meter line items     * Subtotal calculation type is not supported  ### Other Remarks * Null values are acceptable for use and demand unit costs. However, for chargeback bills to calculate correctly, these values must be provided.\n     * @param rateId Unique identifier of the rate schedule whose version will be edited\n     * @param versionId Unique identifier of the rate schedule version to be edited\n     * @param body Updated properties of the rate schedule version to be edited\n     */\n    public editRateVersion(rateId: number, versionId: number, body?: RateVersionRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<RateVersionResponse> {\n        return this.editRateVersionWithHttpInfo(rateId, versionId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<RateVersionResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a rate schedule\n     * \n     * @param rateId Unique ID of the rate schedule\n     */\n    public getRate(rateId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<RateResponse> {\n        return this.getRateWithHttpInfo(rateId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<RateResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get the unit used by a rate. The unit is determined by the usage unit on the most recent template assigned to a meter with the given rate.\n     * \n     * @param rateId Unique identifier of the rate schedule for which the unit will be retrieved\n     */\n    public getRateUnit(rateId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UnitResponse> {\n        return this.getRateUnitWithHttpInfo(rateId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UnitResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a rate version with its details including dates, unit cost values, and bodylines\n     * \n     * @param rateId ID of the rate schedule to retrieve\n     * @param versionId ID of the rate schedule version to retrieve\n     */\n    public getRateVersion(rateId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<RateVersionResponse> {\n        return this.getRateVersionWithHttpInfo(rateId, versionId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<RateVersionResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a list of all versions for a rate schedule with their details including dates, unit cost values, and bodylines\n     * \n     * @param rateId ID of the rate schedule to retrieve\n     */\n    public getRateVersions(rateId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<RateVersionResponse>> {\n        return this.getRateVersionsWithHttpInfo(rateId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<RateVersionResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a list of all rate schedules matching the provided filters\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getRates(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<RateResponse>> {\n        return this.getRatesWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<RateResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Create a rate schedule\n     * \n     * @param body The properties of the rate schedule to be created\n     */\n    public createRateWithHttpInfo(body?: RateCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<RateResponse>> {\n        const path = this.basePath + '/api/v3/rate';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<RateResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Create a rate schedule version\n     * Allows the user to create a new version for a rate schedule for use in chargeback scenarios where use or demand cost for calculated bills must be created from a predefined unit cost.          ### Validation         * Account and meter line items     * Subtotal calculation type is not supported  ### Other Remarks * Inserting a rate version before an existing version will set the new version&#39;s end date to the effective date of the subsequent version. * Null values are acceptable for use and demand unit costs. However, for chargeback bills to calculate correctly, these values must be provided.\n     * @param rateId Unique identifier of the rate schedule to receive the new version\n     * @param body The properties of the rate schedule version to be created\n     */\n    public createRateVersionWithHttpInfo(rateId: number, body?: RateVersionRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<RateVersionResponse>> {\n        const path = this.basePath + '/api/v3/rate/${rateId}/version'\n                    .replace('${' + 'rateId' + '}', String(rateId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'rateId' is not null or undefined\n        if (rateId === null || rateId === undefined) {\n            throw new Error('Required parameter rateId was null or undefined when calling createRateVersion.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<RateVersionResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Delete a rate schedule\n     * \n     * @param rateId Unique identifier of the rate schedule to be deleted\n     */\n    public deleteRateWithHttpInfo(rateId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/rate/${rateId}'\n                    .replace('${' + 'rateId' + '}', String(rateId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'rateId' is not null or undefined\n        if (rateId === null || rateId === undefined) {\n            throw new Error('Required parameter rateId was null or undefined when calling deleteRate.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Delete a version of a rate schedule\n     * ### Validation * The last remaining rate version may not be deleted  ### Other Remarks * When a rate version is deleted, if there is a preceding rate version, then its end date will be reset to the end date of the deleted rate version.\n     * @param rateId Unique identifier of the rate schedule to which the version being deleted belongs\n     * @param versionId Unique identifier of the rate schedule version to delete\n     */\n    public deleteRateVersionWithHttpInfo(rateId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/rate/${rateId}/version/${versionId}'\n                    .replace('${' + 'rateId' + '}', String(rateId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'rateId' is not null or undefined\n        if (rateId === null || rateId === undefined) {\n            throw new Error('Required parameter rateId was null or undefined when calling deleteRateVersion.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling deleteRateVersion.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Download file for a rate custom field\n     * \n     * @param rateId \n     * @param versionId \n     * @param udfId \n     */\n    public downloadRateCustomFieldFileWithHttpInfo(rateId: number, versionId: number, udfId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202105/rate/${rateId}/version/${versionId}/udf/${udfId}/download'\n                    .replace('${' + 'rateId' + '}', String(rateId))\n                    .replace('${' + 'versionId' + '}', String(versionId))\n                    .replace('${' + 'udfId' + '}', String(udfId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'rateId' is not null or undefined\n        if (rateId === null || rateId === undefined) {\n            throw new Error('Required parameter rateId was null or undefined when calling downloadRateCustomFieldFile.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling downloadRateCustomFieldFile.');\n        }\n        // verify required parameter 'udfId' is not null or undefined\n        if (udfId === null || udfId === undefined) {\n            throw new Error('Required parameter udfId was null or undefined when calling downloadRateCustomFieldFile.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Edit a rate\n     * \n     * @param rateId Unique identifier of the rate schedule to be edited\n     * @param body Updated properties of the rate schedule to be edited\n     */\n    public editRateWithHttpInfo(rateId: number, body?: RateEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<RateResponse>> {\n        const path = this.basePath + '/api/v3/rate/${rateId}'\n                    .replace('${' + 'rateId' + '}', String(rateId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'rateId' is not null or undefined\n        if (rateId === null || rateId === undefined) {\n            throw new Error('Required parameter rateId was null or undefined when calling editRate.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<RateResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edit a rate schedule version\n     * ### Validation * Effective date of the edited version     * Must be after the effective date of the previous version     * Must be prior to the effective date of the next version * Account and meter line items     * Subtotal calculation type is not supported  ### Other Remarks * Null values are acceptable for use and demand unit costs. However, for chargeback bills to calculate correctly, these values must be provided.\n     * @param rateId Unique identifier of the rate schedule whose version will be edited\n     * @param versionId Unique identifier of the rate schedule version to be edited\n     * @param body Updated properties of the rate schedule version to be edited\n     */\n    public editRateVersionWithHttpInfo(rateId: number, versionId: number, body?: RateVersionRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<RateVersionResponse>> {\n        const path = this.basePath + '/api/v3/rate/${rateId}/version/${versionId}'\n                    .replace('${' + 'rateId' + '}', String(rateId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'rateId' is not null or undefined\n        if (rateId === null || rateId === undefined) {\n            throw new Error('Required parameter rateId was null or undefined when calling editRateVersion.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling editRateVersion.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<RateVersionResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Get a rate schedule\n     * \n     * @param rateId Unique ID of the rate schedule\n     */\n    public getRateWithHttpInfo(rateId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<RateResponse>> {\n        const path = this.basePath + '/api/v3/rate/${rateId}'\n                    .replace('${' + 'rateId' + '}', String(rateId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'rateId' is not null or undefined\n        if (rateId === null || rateId === undefined) {\n            throw new Error('Required parameter rateId was null or undefined when calling getRate.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<RateResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get the unit used by a rate. The unit is determined by the usage unit on the most recent template assigned to a meter with the given rate.\n     * \n     * @param rateId Unique identifier of the rate schedule for which the unit will be retrieved\n     */\n    public getRateUnitWithHttpInfo(rateId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UnitResponse>> {\n        const path = this.basePath + '/api/v3/rate/${rateId}/unit'\n                    .replace('${' + 'rateId' + '}', String(rateId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'rateId' is not null or undefined\n        if (rateId === null || rateId === undefined) {\n            throw new Error('Required parameter rateId was null or undefined when calling getRateUnit.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UnitResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a rate version with its details including dates, unit cost values, and bodylines\n     * \n     * @param rateId ID of the rate schedule to retrieve\n     * @param versionId ID of the rate schedule version to retrieve\n     */\n    public getRateVersionWithHttpInfo(rateId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<RateVersionResponse>> {\n        const path = this.basePath + '/api/v3/rate/${rateId}/version/${versionId}'\n                    .replace('${' + 'rateId' + '}', String(rateId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'rateId' is not null or undefined\n        if (rateId === null || rateId === undefined) {\n            throw new Error('Required parameter rateId was null or undefined when calling getRateVersion.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling getRateVersion.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<RateVersionResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a list of all versions for a rate schedule with their details including dates, unit cost values, and bodylines\n     * \n     * @param rateId ID of the rate schedule to retrieve\n     */\n    public getRateVersionsWithHttpInfo(rateId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<RateVersionResponse>>> {\n        const path = this.basePath + '/api/v3/rate/${rateId}/version'\n                    .replace('${' + 'rateId' + '}', String(rateId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'rateId' is not null or undefined\n        if (rateId === null || rateId === undefined) {\n            throw new Error('Required parameter rateId was null or undefined when calling getRateVersions.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<RateVersionResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a list of all rate schedules matching the provided filters\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getRatesWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<RateResponse>>> {\n        const path = this.basePath + '/api/v3/rate';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<RateResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { RateDigestActualYearlyResponse } from '../model/rateDigestActualYearlyResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class RateDigestService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by rate for a given number of years- Result includes cost, use, unit cost on an yearly basis.\n     * \n     * @param rateId The rate to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     */\n    public getRateActualYearly(rateId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<RateDigestActualYearlyResponse> {\n        return this.getRateActualYearlyWithHttpInfo(rateId, numberOfYears, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<RateDigestActualYearlyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Retrieves rolled up actual billing data by rate for a given number of years- Result includes cost, use, unit cost on an yearly basis.\n     * \n     * @param rateId The rate to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     */\n    public getRateActualYearlyWithHttpInfo(rateId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<RateDigestActualYearlyResponse>> {\n        const path = this.basePath + '/api/v3/rate/${rateId}/digest/actual/yearly'\n                    .replace('${' + 'rateId' + '}', String(rateId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'rateId' is not null or undefined\n        if (rateId === null || rateId === undefined) {\n            throw new Error('Required parameter rateId was null or undefined when calling getRateActualYearly.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<RateDigestActualYearlyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { DistributedReportsConfiguration } from '../model/distributedReportsConfiguration';\nimport { FilterEdit } from '../model/filterEdit';\nimport { FilterResponse } from '../model/filterResponse';\nimport { IActionResult } from '../model/iActionResult';\nimport { OkResult } from '../model/okResult';\nimport { QuickReport } from '../model/quickReport';\nimport { ReportCreate } from '../model/reportCreate';\nimport { ReportEdit } from '../model/reportEdit';\nimport { ReportGroupRequest } from '../model/reportGroupRequest';\nimport { ReportGroupResponse } from '../model/reportGroupResponse';\nimport { ReportSubscriptionRequest } from '../model/reportSubscriptionRequest';\nimport { ReportSubscriptionScheduleTypeResponse } from '../model/reportSubscriptionScheduleTypeResponse';\nimport { ShareRequest } from '../model/shareRequest';\nimport { ShareResponse } from '../model/shareResponse';\nimport { SpecificReportResponse } from '../model/specificReportResponse';\nimport { ToggleVisible } from '../model/toggleVisible';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class ReportService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * \n     * \n     * @param body \n     */\n    public createReportGroup(body?: ReportGroupRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ReportGroupResponse> {\n        return this.createReportGroupWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ReportGroupResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Subscribe to a report and receive scheduled emails This must be a saved report that belongs to or is shared with the current user Only SSRS reports are supported\n     * \n     * @param specificReportId \n     * @param body \n     */\n    public createReportSubscription(specificReportId: number, body?: ReportSubscriptionRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<SpecificReportResponse> {\n        return this.createReportSubscriptionWithHttpInfo(specificReportId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<SpecificReportResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Save a specific report to Saved Reports\n     * \n     * @param specificReportId The specific report to save\n     * @param body The specific report create properties\n     */\n    public createSpecificReport(specificReportId: number, body?: ReportCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<SpecificReportResponse> {\n        return this.createSpecificReportWithHttpInfo(specificReportId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<SpecificReportResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes a Report Group\n     * \n     * @param reportGroupId \n     */\n    public deleteReportGroup(reportGroupId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteReportGroupWithHttpInfo(reportGroupId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete a report subscription This must be a subscription that belongs to the current user\n     * \n     * @param specificReportId \n     * @param reportSubscriptionId \n     */\n    public deleteReportSubscription(specificReportId: number, reportSubscriptionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteReportSubscriptionWithHttpInfo(specificReportId, reportSubscriptionId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * \n     * \n     * @param specificReportId \n     */\n    public deleteSpecificReport(specificReportId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteSpecificReportWithHttpInfo(specificReportId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Execute a report, save it in a given format, and email it to a list of recipients.  If distributing reports, returns a 204 No Content if onlySendIfData is set to True and the report generated no data;  returns a 200 and the generated report for download or an empty body if onlySendIfData is set to True\n     * \n     * @param specificReportId The ID of the specific report to run\n     * @param body Allows the user to run one report and optionally email it to one or more recipients. They can optionally specify whether or not the report(s) should be sent if they contain no data.\n     */\n    public distributeReport(specificReportId: number, body?: DistributedReportsConfiguration, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.distributeReportWithHttpInfo(specificReportId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit the filters for a specific report.\n     * \n     * @param specificReportId The specific report for which the filters are to be edited\n     * @param body The list of filters to apply\n     */\n    public editReportFilters(specificReportId: number, body?: Array<FilterEdit>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<FilterResponse>> {\n        return this.editReportFiltersWithHttpInfo(specificReportId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<FilterResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * \n     * \n     * @param reportGroupId \n     * @param body \n     */\n    public editReportGroup(reportGroupId: number, body?: ReportGroupRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ReportGroupResponse> {\n        return this.editReportGroupWithHttpInfo(reportGroupId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ReportGroupResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit a report subscription This must be a subscription that belongs to the current user\n     * \n     * @param specificReportId \n     * @param reportSubscriptionId \n     * @param body \n     */\n    public editReportSubscription(specificReportId: number, reportSubscriptionId: number, body?: ReportSubscriptionRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<SpecificReportResponse> {\n        return this.editReportSubscriptionWithHttpInfo(specificReportId, reportSubscriptionId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<SpecificReportResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit a specific report\n     * \n     * @param specificReportId The specific report to edit\n     * @param body The specific report edit properties\n     */\n    public editSpecificReport(specificReportId: number, body?: ReportEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<SpecificReportResponse> {\n        return this.editSpecificReportWithHttpInfo(specificReportId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<SpecificReportResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get the filters for a specific report.\n     * \n     * @param specificReportId The specific report for which the filters are to be retrieved\n     */\n    public getReportFilters(specificReportId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<FilterResponse>> {\n        return this.getReportFiltersWithHttpInfo(specificReportId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<FilterResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * \n     * \n     * @param reportGroupId \n     */\n    public getReportGroup(reportGroupId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ReportGroupResponse> {\n        return this.getReportGroupWithHttpInfo(reportGroupId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ReportGroupResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * \n     * \n     */\n    public getReportGroups(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<ReportGroupResponse>> {\n        return this.getReportGroupsWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<ReportGroupResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get sharing information for a report\n     * Only the user who created the report or a report administrator is permitted to get sharing details for a report.\n     * @param specificReportId The specific report for which to retrieve sharing information\n     */\n    public getReportSharingDetails(specificReportId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ShareResponse> {\n        return this.getReportSharingDetailsWithHttpInfo(specificReportId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ShareResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a list of all available report subscription schedule types, and their day indicator values\n     * \n     */\n    public getReportSubscriptionScheduleTypes(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<ReportSubscriptionScheduleTypeResponse>> {\n        return this.getReportSubscriptionScheduleTypesWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<ReportSubscriptionScheduleTypeResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a report by its specificReportID.\n     * \n     * @param specificReportId \n     */\n    public getSpecificReport(specificReportId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<SpecificReportResponse> {\n        return this.getSpecificReportWithHttpInfo(specificReportId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<SpecificReportResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a filterable list of installed, saved, and shared reports available to the current user.\n     * \n     * @param filter \n     */\n    public getSpecificReports(filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<SpecificReportResponse>> {\n        return this.getSpecificReportsWithHttpInfo(filter, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<SpecificReportResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * \n     * \n     */\n    public installReports(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<OkResult> {\n        return this.installReportsWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<OkResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Execute and email report subscriptions that are ready to be run\n     * \n     */\n    public processReportSubscriptions(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.processReportSubscriptionsWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Generates a \\&quot;quick report\\&quot; in the specified export format (or in its preferred export format if not specified) as identified by the provided report code and applying ONLY the filters supplied.\n     * \n     * @param body \n     */\n    public runQuickReport(body?: QuickReport, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.runQuickReportWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Run a report and download in the provided format\n     * \n     * @param specificReportId The ID of the specific report to run\n     * @param format The format in which the generated report should be downloaded. Supported options are [\\&quot;excel\\&quot;, \\&quot;csv\\&quot;, \\&quot;pdf\\&quot;, \\&quot;word\\&quot;]\n     */\n    public runReport(specificReportId: number, format?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.runReportWithHttpInfo(specificReportId, format, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Share a saved report with other users\n     * \n     * @param specificReportId ID of the saved report to share\n     * @param body Updated sharing details for the report\n     */\n    public shareSavedReport(specificReportId: number, body?: ShareRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ShareResponse> {\n        return this.shareSavedReportWithHttpInfo(specificReportId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ShareResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Update the visibility of a report for the current user This must be a report you can see Which means you must have created the report or have ReportAdministrator Manage permission and the report is shared at all or have SharedReports View permission and the report is shared with you\n     * \n     * @param specificReportId Specific dashboard\n     * @param body Set Visibility\n     */\n    public toggleSharedReportVisibility(specificReportId: number, body?: ToggleVisible, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<SpecificReportResponse> {\n        return this.toggleSharedReportVisibilityWithHttpInfo(specificReportId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<SpecificReportResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * \n     * \n     * @param body \n     */\n    public createReportGroupWithHttpInfo(body?: ReportGroupRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ReportGroupResponse>> {\n        const path = this.basePath + '/api/v3/report/reportgroup';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ReportGroupResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Subscribe to a report and receive scheduled emails This must be a saved report that belongs to or is shared with the current user Only SSRS reports are supported\n     * \n     * @param specificReportId \n     * @param body \n     */\n    public createReportSubscriptionWithHttpInfo(specificReportId: number, body?: ReportSubscriptionRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<SpecificReportResponse>> {\n        const path = this.basePath + '/api/v3/report/${specificReportId}/subscription'\n                    .replace('${' + 'specificReportId' + '}', String(specificReportId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificReportId' is not null or undefined\n        if (specificReportId === null || specificReportId === undefined) {\n            throw new Error('Required parameter specificReportId was null or undefined when calling createReportSubscription.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<SpecificReportResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Save a specific report to Saved Reports\n     * \n     * @param specificReportId The specific report to save\n     * @param body The specific report create properties\n     */\n    public createSpecificReportWithHttpInfo(specificReportId: number, body?: ReportCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<SpecificReportResponse>> {\n        const path = this.basePath + '/api/v3/report/${specificReportId}/copy'\n                    .replace('${' + 'specificReportId' + '}', String(specificReportId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificReportId' is not null or undefined\n        if (specificReportId === null || specificReportId === undefined) {\n            throw new Error('Required parameter specificReportId was null or undefined when calling createSpecificReport.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<SpecificReportResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Deletes a Report Group\n     * \n     * @param reportGroupId \n     */\n    public deleteReportGroupWithHttpInfo(reportGroupId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/report/reportgroup/${reportGroupId}'\n                    .replace('${' + 'reportGroupId' + '}', String(reportGroupId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'reportGroupId' is not null or undefined\n        if (reportGroupId === null || reportGroupId === undefined) {\n            throw new Error('Required parameter reportGroupId was null or undefined when calling deleteReportGroup.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Delete a report subscription This must be a subscription that belongs to the current user\n     * \n     * @param specificReportId \n     * @param reportSubscriptionId \n     */\n    public deleteReportSubscriptionWithHttpInfo(specificReportId: number, reportSubscriptionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/report/${specificReportId}/subscription/${reportSubscriptionId}'\n                    .replace('${' + 'specificReportId' + '}', String(specificReportId))\n                    .replace('${' + 'reportSubscriptionId' + '}', String(reportSubscriptionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificReportId' is not null or undefined\n        if (specificReportId === null || specificReportId === undefined) {\n            throw new Error('Required parameter specificReportId was null or undefined when calling deleteReportSubscription.');\n        }\n        // verify required parameter 'reportSubscriptionId' is not null or undefined\n        if (reportSubscriptionId === null || reportSubscriptionId === undefined) {\n            throw new Error('Required parameter reportSubscriptionId was null or undefined when calling deleteReportSubscription.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * \n     * \n     * @param specificReportId \n     */\n    public deleteSpecificReportWithHttpInfo(specificReportId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/report/${specificReportId}'\n                    .replace('${' + 'specificReportId' + '}', String(specificReportId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificReportId' is not null or undefined\n        if (specificReportId === null || specificReportId === undefined) {\n            throw new Error('Required parameter specificReportId was null or undefined when calling deleteSpecificReport.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Execute a report, save it in a given format, and email it to a list of recipients.  If distributing reports, returns a 204 No Content if onlySendIfData is set to True and the report generated no data;  returns a 200 and the generated report for download or an empty body if onlySendIfData is set to True\n     * \n     * @param specificReportId The ID of the specific report to run\n     * @param body Allows the user to run one report and optionally email it to one or more recipients. They can optionally specify whether or not the report(s) should be sent if they contain no data.\n     */\n    public distributeReportWithHttpInfo(specificReportId: number, body?: DistributedReportsConfiguration, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/report/exec/${specificReportId}'\n                    .replace('${' + 'specificReportId' + '}', String(specificReportId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificReportId' is not null or undefined\n        if (specificReportId === null || specificReportId === undefined) {\n            throw new Error('Required parameter specificReportId was null or undefined when calling distributeReport.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Edit the filters for a specific report.\n     * \n     * @param specificReportId The specific report for which the filters are to be edited\n     * @param body The list of filters to apply\n     */\n    public editReportFiltersWithHttpInfo(specificReportId: number, body?: Array<FilterEdit>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<FilterResponse>>> {\n        const path = this.basePath + '/api/v3/report/${specificReportId}/filter'\n                    .replace('${' + 'specificReportId' + '}', String(specificReportId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificReportId' is not null or undefined\n        if (specificReportId === null || specificReportId === undefined) {\n            throw new Error('Required parameter specificReportId was null or undefined when calling editReportFilters.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<FilterResponse>>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * \n     * \n     * @param reportGroupId \n     * @param body \n     */\n    public editReportGroupWithHttpInfo(reportGroupId: number, body?: ReportGroupRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ReportGroupResponse>> {\n        const path = this.basePath + '/api/v3/report/reportgroup/${reportGroupId}'\n                    .replace('${' + 'reportGroupId' + '}', String(reportGroupId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'reportGroupId' is not null or undefined\n        if (reportGroupId === null || reportGroupId === undefined) {\n            throw new Error('Required parameter reportGroupId was null or undefined when calling editReportGroup.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ReportGroupResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edit a report subscription This must be a subscription that belongs to the current user\n     * \n     * @param specificReportId \n     * @param reportSubscriptionId \n     * @param body \n     */\n    public editReportSubscriptionWithHttpInfo(specificReportId: number, reportSubscriptionId: number, body?: ReportSubscriptionRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<SpecificReportResponse>> {\n        const path = this.basePath + '/api/v3/report/${specificReportId}/subscription/${reportSubscriptionId}'\n                    .replace('${' + 'specificReportId' + '}', String(specificReportId))\n                    .replace('${' + 'reportSubscriptionId' + '}', String(reportSubscriptionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificReportId' is not null or undefined\n        if (specificReportId === null || specificReportId === undefined) {\n            throw new Error('Required parameter specificReportId was null or undefined when calling editReportSubscription.');\n        }\n        // verify required parameter 'reportSubscriptionId' is not null or undefined\n        if (reportSubscriptionId === null || reportSubscriptionId === undefined) {\n            throw new Error('Required parameter reportSubscriptionId was null or undefined when calling editReportSubscription.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<SpecificReportResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edit a specific report\n     * \n     * @param specificReportId The specific report to edit\n     * @param body The specific report edit properties\n     */\n    public editSpecificReportWithHttpInfo(specificReportId: number, body?: ReportEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<SpecificReportResponse>> {\n        const path = this.basePath + '/api/v3/report/${specificReportId}'\n                    .replace('${' + 'specificReportId' + '}', String(specificReportId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificReportId' is not null or undefined\n        if (specificReportId === null || specificReportId === undefined) {\n            throw new Error('Required parameter specificReportId was null or undefined when calling editSpecificReport.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<SpecificReportResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Get the filters for a specific report.\n     * \n     * @param specificReportId The specific report for which the filters are to be retrieved\n     */\n    public getReportFiltersWithHttpInfo(specificReportId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<FilterResponse>>> {\n        const path = this.basePath + '/api/v3/report/${specificReportId}/filter'\n                    .replace('${' + 'specificReportId' + '}', String(specificReportId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificReportId' is not null or undefined\n        if (specificReportId === null || specificReportId === undefined) {\n            throw new Error('Required parameter specificReportId was null or undefined when calling getReportFilters.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<FilterResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * \n     * \n     * @param reportGroupId \n     */\n    public getReportGroupWithHttpInfo(reportGroupId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ReportGroupResponse>> {\n        const path = this.basePath + '/api/v3/report/reportgroup/${reportGroupId}'\n                    .replace('${' + 'reportGroupId' + '}', String(reportGroupId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'reportGroupId' is not null or undefined\n        if (reportGroupId === null || reportGroupId === undefined) {\n            throw new Error('Required parameter reportGroupId was null or undefined when calling getReportGroup.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ReportGroupResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * \n     * \n     */\n    public getReportGroupsWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<ReportGroupResponse>>> {\n        const path = this.basePath + '/api/v3/report/reportgroup';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<ReportGroupResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get sharing information for a report\n     * Only the user who created the report or a report administrator is permitted to get sharing details for a report.\n     * @param specificReportId The specific report for which to retrieve sharing information\n     */\n    public getReportSharingDetailsWithHttpInfo(specificReportId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ShareResponse>> {\n        const path = this.basePath + '/api/v3/report/${specificReportId}/share'\n                    .replace('${' + 'specificReportId' + '}', String(specificReportId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificReportId' is not null or undefined\n        if (specificReportId === null || specificReportId === undefined) {\n            throw new Error('Required parameter specificReportId was null or undefined when calling getReportSharingDetails.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ShareResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a list of all available report subscription schedule types, and their day indicator values\n     * \n     */\n    public getReportSubscriptionScheduleTypesWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<ReportSubscriptionScheduleTypeResponse>>> {\n        const path = this.basePath + '/api/v3/report/subscription/scheduletype';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<ReportSubscriptionScheduleTypeResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a report by its specificReportID.\n     * \n     * @param specificReportId \n     */\n    public getSpecificReportWithHttpInfo(specificReportId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<SpecificReportResponse>> {\n        const path = this.basePath + '/api/v3/report/${specificReportId}'\n                    .replace('${' + 'specificReportId' + '}', String(specificReportId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificReportId' is not null or undefined\n        if (specificReportId === null || specificReportId === undefined) {\n            throw new Error('Required parameter specificReportId was null or undefined when calling getSpecificReport.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<SpecificReportResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a filterable list of installed, saved, and shared reports available to the current user.\n     * \n     * @param filter \n     */\n    public getSpecificReportsWithHttpInfo(filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<SpecificReportResponse>>> {\n        const path = this.basePath + '/api/v3/report';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<SpecificReportResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * \n     * \n     */\n    public installReportsWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<OkResult>> {\n        const path = this.basePath + '/api/v3/report/install/latest';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<OkResult>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Execute and email report subscriptions that are ready to be run\n     * \n     */\n    public processReportSubscriptionsWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/report/exec/subscription';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Generates a \\&quot;quick report\\&quot; in the specified export format (or in its preferred export format if not specified) as identified by the provided report code and applying ONLY the filters supplied.\n     * \n     * @param body \n     */\n    public runQuickReportWithHttpInfo(body?: QuickReport, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/report/quick';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Run a report and download in the provided format\n     * \n     * @param specificReportId The ID of the specific report to run\n     * @param format The format in which the generated report should be downloaded. Supported options are [\\&quot;excel\\&quot;, \\&quot;csv\\&quot;, \\&quot;pdf\\&quot;, \\&quot;word\\&quot;]\n     */\n    public runReportWithHttpInfo(specificReportId: number, format?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/report/exec/${specificReportId}'\n                    .replace('${' + 'specificReportId' + '}', String(specificReportId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificReportId' is not null or undefined\n        if (specificReportId === null || specificReportId === undefined) {\n            throw new Error('Required parameter specificReportId was null or undefined when calling runReport.');\n        }\n        if (format !== undefined) {\n            queryParameters = queryParameters.set('format', <any>format);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Share a saved report with other users\n     * \n     * @param specificReportId ID of the saved report to share\n     * @param body Updated sharing details for the report\n     */\n    public shareSavedReportWithHttpInfo(specificReportId: number, body?: ShareRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ShareResponse>> {\n        const path = this.basePath + '/api/v3/report/${specificReportId}/share'\n                    .replace('${' + 'specificReportId' + '}', String(specificReportId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificReportId' is not null or undefined\n        if (specificReportId === null || specificReportId === undefined) {\n            throw new Error('Required parameter specificReportId was null or undefined when calling shareSavedReport.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ShareResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Update the visibility of a report for the current user This must be a report you can see Which means you must have created the report or have ReportAdministrator Manage permission and the report is shared at all or have SharedReports View permission and the report is shared with you\n     * \n     * @param specificReportId Specific dashboard\n     * @param body Set Visibility\n     */\n    public toggleSharedReportVisibilityWithHttpInfo(specificReportId: number, body?: ToggleVisible, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<SpecificReportResponse>> {\n        const path = this.basePath + '/api/v3/report/${specificReportId}/visible'\n                    .replace('${' + 'specificReportId' + '}', String(specificReportId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificReportId' is not null or undefined\n        if (specificReportId === null || specificReportId === undefined) {\n            throw new Error('Required parameter specificReportId was null or undefined when calling toggleSharedReportVisibility.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<SpecificReportResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { ListResponse } from '../model/listResponse';\nimport { ProblemDetails } from '../model/problemDetails';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class ReportBuilderService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * \n     * \n     * @param kql \n     * @param offset \n     */\n    public query(kql?: string, offset?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ListResponse> {\n        return this.queryWithHttpInfo(kql, offset, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ListResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * \n     * \n     * @param kql \n     * @param offset \n     */\n    public queryWithHttpInfo(kql?: string, offset?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ListResponse>> {\n        const path = this.basePath + '/api/v202506/reportbuilder/query';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (kql !== undefined) {\n            queryParameters = queryParameters.set('kql', <any>kql);\n        }\n\n        if (offset !== undefined) {\n            queryParameters = queryParameters.set('offset', <any>offset);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ListResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { FilterResponse } from '../model/filterResponse';\nimport { ReportDistributionCreateRequest } from '../model/reportDistributionCreateRequest';\nimport { ReportDistributionDetailsResponse } from '../model/reportDistributionDetailsResponse';\nimport { ReportDistributionEditRequest } from '../model/reportDistributionEditRequest';\nimport { ReportDistributionLogDetailsResponse } from '../model/reportDistributionLogDetailsResponse';\nimport { ReportDistributionLogResponse } from '../model/reportDistributionLogResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class ReportDistributionService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Create a Report Distribution\n     * \n     * @param body Data representing the report distribution being created\n     */\n    public createReportDistribution(body?: ReportDistributionCreateRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ReportDistributionDetailsResponse> {\n        return this.createReportDistributionWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ReportDistributionDetailsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes a Report Distribution\n     * \n     * @param reportDistributionId Id of the report distribution to delete\n     */\n    public deleteReportDistribution(reportDistributionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteReportDistributionWithHttpInfo(reportDistributionId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete report distribution logs older than the number of days provided only if the number of logs per distribution is in excess of 100. 100 latest logs per distribution will always be maintained\n     * \n     * @param olderThanDays Defaults to 3\n     */\n    public deleteReportDistributionLogsOlderThan(olderThanDays?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteReportDistributionLogsOlderThanWithHttpInfo(olderThanDays, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit a Report Distribution\n     * \n     * @param reportDistributionId Id of the report distribution to edit\n     * @param body Data representing the report distribution being edited\n     */\n    public editReportDistribution(reportDistributionId: number, body?: ReportDistributionEditRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ReportDistributionDetailsResponse> {\n        return this.editReportDistributionWithHttpInfo(reportDistributionId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ReportDistributionDetailsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Run a report distribution and send the report out immediately This does not affect the current distribution schedule\n     * \n     * @param reportDistributionId Id of the report distribution to run\n     * @param overrideUserIds List of systemuserIds to send the distribution to. If not provided the currently configured recipients will receive the report.  If this is provided it is used in place of the currently configured recipients\n     */\n    public executeReportDistribution(reportDistributionId: number, overrideUserIds?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ReportDistributionLogResponse> {\n        return this.executeReportDistributionWithHttpInfo(reportDistributionId, overrideUserIds, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ReportDistributionLogResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a Report Distribution\n     * \n     * @param reportDistributionId Id of the report distribution to get\n     */\n    public getReportDistribution(reportDistributionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ReportDistributionDetailsResponse> {\n        return this.getReportDistributionWithHttpInfo(reportDistributionId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ReportDistributionDetailsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a Report Distribution Filters\n     * \n     * @param reportDistributionId Id of the report distribution to get\n     */\n    public getReportDistributionFilters(reportDistributionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<FilterResponse>> {\n        return this.getReportDistributionFiltersWithHttpInfo(reportDistributionId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<FilterResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get the details for a report distribution log\n     * \n     * @param reportDistributionLogId Id of the report distribution log to get the details for\n     */\n    public getReportDistributionLogDetails(reportDistributionLogId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ReportDistributionLogDetailsResponse> {\n        return this.getReportDistributionLogDetailsWithHttpInfo(reportDistributionLogId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ReportDistributionLogDetailsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a list of report distribution logs\n     * \n     * @param includeInProgress Option to include in progress distributions.  False by default\n     */\n    public getReportDistributionLogs(includeInProgress?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<ReportDistributionLogResponse>> {\n        return this.getReportDistributionLogsWithHttpInfo(includeInProgress, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<ReportDistributionLogResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get all Report Distributions\n     * \n     * @param filter \n     */\n    public getReportDistributions(filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<ReportDistributionDetailsResponse>> {\n        return this.getReportDistributionsWithHttpInfo(filter, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<ReportDistributionDetailsResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Run all report distributions Sends reports based on configured schedule DistributedReportSettings - Manage permission required.\n     * \n     */\n    public runReportDistributions(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.runReportDistributionsWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Create a Report Distribution\n     * \n     * @param body Data representing the report distribution being created\n     */\n    public createReportDistributionWithHttpInfo(body?: ReportDistributionCreateRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ReportDistributionDetailsResponse>> {\n        const path = this.basePath + '/api/v202106/reportdistribution';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ReportDistributionDetailsResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Deletes a Report Distribution\n     * \n     * @param reportDistributionId Id of the report distribution to delete\n     */\n    public deleteReportDistributionWithHttpInfo(reportDistributionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202106/reportdistribution/${reportDistributionId}'\n                    .replace('${' + 'reportDistributionId' + '}', String(reportDistributionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'reportDistributionId' is not null or undefined\n        if (reportDistributionId === null || reportDistributionId === undefined) {\n            throw new Error('Required parameter reportDistributionId was null or undefined when calling deleteReportDistribution.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Delete report distribution logs older than the number of days provided only if the number of logs per distribution is in excess of 100. 100 latest logs per distribution will always be maintained\n     * \n     * @param olderThanDays Defaults to 3\n     */\n    public deleteReportDistributionLogsOlderThanWithHttpInfo(olderThanDays?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202106/reportdistribution/log';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (olderThanDays !== undefined) {\n            queryParameters = queryParameters.set('olderThanDays', <any>olderThanDays);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Edit a Report Distribution\n     * \n     * @param reportDistributionId Id of the report distribution to edit\n     * @param body Data representing the report distribution being edited\n     */\n    public editReportDistributionWithHttpInfo(reportDistributionId: number, body?: ReportDistributionEditRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ReportDistributionDetailsResponse>> {\n        const path = this.basePath + '/api/v202106/reportdistribution/${reportDistributionId}'\n                    .replace('${' + 'reportDistributionId' + '}', String(reportDistributionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'reportDistributionId' is not null or undefined\n        if (reportDistributionId === null || reportDistributionId === undefined) {\n            throw new Error('Required parameter reportDistributionId was null or undefined when calling editReportDistribution.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ReportDistributionDetailsResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Run a report distribution and send the report out immediately This does not affect the current distribution schedule\n     * \n     * @param reportDistributionId Id of the report distribution to run\n     * @param overrideUserIds List of systemuserIds to send the distribution to. If not provided the currently configured recipients will receive the report.  If this is provided it is used in place of the currently configured recipients\n     */\n    public executeReportDistributionWithHttpInfo(reportDistributionId: number, overrideUserIds?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ReportDistributionLogResponse>> {\n        const path = this.basePath + '/api/v202106/reportdistribution/${reportDistributionId}/exec'\n                    .replace('${' + 'reportDistributionId' + '}', String(reportDistributionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'reportDistributionId' is not null or undefined\n        if (reportDistributionId === null || reportDistributionId === undefined) {\n            throw new Error('Required parameter reportDistributionId was null or undefined when calling executeReportDistribution.');\n        }\n        if (overrideUserIds) {\n            overrideUserIds.forEach((element) => {\n                queryParameters = queryParameters.append('overrideUserIds', <any>element);\n            })\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ReportDistributionLogResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Get a Report Distribution\n     * \n     * @param reportDistributionId Id of the report distribution to get\n     */\n    public getReportDistributionWithHttpInfo(reportDistributionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ReportDistributionDetailsResponse>> {\n        const path = this.basePath + '/api/v202106/reportdistribution/${reportDistributionId}'\n                    .replace('${' + 'reportDistributionId' + '}', String(reportDistributionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'reportDistributionId' is not null or undefined\n        if (reportDistributionId === null || reportDistributionId === undefined) {\n            throw new Error('Required parameter reportDistributionId was null or undefined when calling getReportDistribution.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ReportDistributionDetailsResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a Report Distribution Filters\n     * \n     * @param reportDistributionId Id of the report distribution to get\n     */\n    public getReportDistributionFiltersWithHttpInfo(reportDistributionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<FilterResponse>>> {\n        const path = this.basePath + '/api/v202106/reportdistribution/${reportDistributionId}/filter'\n                    .replace('${' + 'reportDistributionId' + '}', String(reportDistributionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'reportDistributionId' is not null or undefined\n        if (reportDistributionId === null || reportDistributionId === undefined) {\n            throw new Error('Required parameter reportDistributionId was null or undefined when calling getReportDistributionFilters.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<FilterResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get the details for a report distribution log\n     * \n     * @param reportDistributionLogId Id of the report distribution log to get the details for\n     */\n    public getReportDistributionLogDetailsWithHttpInfo(reportDistributionLogId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ReportDistributionLogDetailsResponse>> {\n        const path = this.basePath + '/api/v202106/reportdistribution/log/${reportDistributionLogId}/detail'\n                    .replace('${' + 'reportDistributionLogId' + '}', String(reportDistributionLogId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'reportDistributionLogId' is not null or undefined\n        if (reportDistributionLogId === null || reportDistributionLogId === undefined) {\n            throw new Error('Required parameter reportDistributionLogId was null or undefined when calling getReportDistributionLogDetails.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ReportDistributionLogDetailsResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a list of report distribution logs\n     * \n     * @param includeInProgress Option to include in progress distributions.  False by default\n     */\n    public getReportDistributionLogsWithHttpInfo(includeInProgress?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<ReportDistributionLogResponse>>> {\n        const path = this.basePath + '/api/v202106/reportdistribution/log';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (includeInProgress !== undefined) {\n            queryParameters = queryParameters.set('includeInProgress', <any>includeInProgress);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<ReportDistributionLogResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get all Report Distributions\n     * \n     * @param filter \n     */\n    public getReportDistributionsWithHttpInfo(filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<ReportDistributionDetailsResponse>>> {\n        const path = this.basePath + '/api/v202106/reportdistribution';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<ReportDistributionDetailsResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Run all report distributions Sends reports based on configured schedule DistributedReportSettings - Manage permission required.\n     * \n     */\n    public runReportDistributionsWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202106/reportdistribution/exec';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Post, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { RouteDetailsResponse } from '../model/routeDetailsResponse';\nimport { RouteMeter } from '../model/routeMeter';\nimport { RouteMeterChannelLatestReadingResponse } from '../model/routeMeterChannelLatestReadingResponse';\nimport { RouteRequest } from '../model/routeRequest';\nimport { RouteResponse } from '../model/routeResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class RouteService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Adds a meter to a route\n     * \n     * @param routeId The identifier for the route to add the meters to\n     * @param body Object representing meter to add to the route\n     */\n    public addMeter(routeId: number, body?: RouteMeter, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<RouteResponse> {\n        return this.addMeterWithHttpInfo(routeId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<RouteResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Creates a new route and assigns a group of meters to it\n     * \n     * @param body Data representing the route being created\n     */\n    public createRoute(body?: RouteRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<RouteResponse> {\n        return this.createRouteWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<RouteResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes a route\n     * \n     * @param id The identifier for the route being deleted\n     */\n    public deleteRoute(id: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteRouteWithHttpInfo(id, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits a route\n     * \n     * @param id The identifier for the route being edited\n     * @param body Data representing the route being edited\n     */\n    public editRoute(id: number, body?: RouteRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<RouteResponse> {\n        return this.editRouteWithHttpInfo(id, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<RouteResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves one route\n     * \n     * @param id The identifier for route being retrieved\n     */\n    public getRoute(id: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<RouteResponse> {\n        return this.getRouteWithHttpInfo(id, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<RouteResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves one route and all the meters on that route The meters are ordered by display order\n     * \n     * @param id The identifier for route being retrieved\n     */\n    public getRouteDetails(id: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<RouteDetailsResponse> {\n        return this.getRouteDetailsWithHttpInfo(id, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<RouteDetailsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all routes\n     * \n     */\n    public getRoutes(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<RouteResponse>> {\n        return this.getRoutesWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<RouteResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves a list of routes with their list of meters and a list of channels on each meter with the latest reading Meters are returned in order they appear on a route If the interval filter is passed and no channels match the filter, the route is not included in the response.\n     * \n     * @param filter \n     */\n    public getRoutesWithMetersChannelsLatestReading(filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<RouteMeterChannelLatestReadingResponse>> {\n        return this.getRoutesWithMetersChannelsLatestReadingWithHttpInfo(filter, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<RouteMeterChannelLatestReadingResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Removes a meter from a route\n     * \n     * @param routeId The identifier for the route the meter is being remove from\n     * @param meterId The identifier for the meter being removed\n     */\n    public removeMeter(routeId: number, meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.removeMeterWithHttpInfo(routeId, meterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Adds a meter to a route\n     * \n     * @param routeId The identifier for the route to add the meters to\n     * @param body Object representing meter to add to the route\n     */\n    public addMeterWithHttpInfo(routeId: number, body?: RouteMeter, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<RouteResponse>> {\n        const path = this.basePath + '/api/v3/route/${routeId}/meter'\n                    .replace('${' + 'routeId' + '}', String(routeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'routeId' is not null or undefined\n        if (routeId === null || routeId === undefined) {\n            throw new Error('Required parameter routeId was null or undefined when calling addMeter.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<RouteResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Creates a new route and assigns a group of meters to it\n     * \n     * @param body Data representing the route being created\n     */\n    public createRouteWithHttpInfo(body?: RouteRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<RouteResponse>> {\n        const path = this.basePath + '/api/v3/route';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<RouteResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Deletes a route\n     * \n     * @param id The identifier for the route being deleted\n     */\n    public deleteRouteWithHttpInfo(id: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/route/${id}'\n                    .replace('${' + 'id' + '}', String(id));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'id' is not null or undefined\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling deleteRoute.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Edits a route\n     * \n     * @param id The identifier for the route being edited\n     * @param body Data representing the route being edited\n     */\n    public editRouteWithHttpInfo(id: number, body?: RouteRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<RouteResponse>> {\n        const path = this.basePath + '/api/v3/route/${id}'\n                    .replace('${' + 'id' + '}', String(id));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'id' is not null or undefined\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling editRoute.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<RouteResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Retrieves one route\n     * \n     * @param id The identifier for route being retrieved\n     */\n    public getRouteWithHttpInfo(id: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<RouteResponse>> {\n        const path = this.basePath + '/api/v3/route/${id}'\n                    .replace('${' + 'id' + '}', String(id));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'id' is not null or undefined\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling getRoute.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<RouteResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves one route and all the meters on that route The meters are ordered by display order\n     * \n     * @param id The identifier for route being retrieved\n     */\n    public getRouteDetailsWithHttpInfo(id: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<RouteDetailsResponse>> {\n        const path = this.basePath + '/api/v3/route/${id}/details'\n                    .replace('${' + 'id' + '}', String(id));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'id' is not null or undefined\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling getRouteDetails.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<RouteDetailsResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all routes\n     * \n     */\n    public getRoutesWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<RouteResponse>>> {\n        const path = this.basePath + '/api/v3/route';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<RouteResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves a list of routes with their list of meters and a list of channels on each meter with the latest reading Meters are returned in order they appear on a route If the interval filter is passed and no channels match the filter, the route is not included in the response.\n     * \n     * @param filter \n     */\n    public getRoutesWithMetersChannelsLatestReadingWithHttpInfo(filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<RouteMeterChannelLatestReadingResponse>>> {\n        const path = this.basePath + '/api/v3/route/meter/channel/latestReading';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<RouteMeterChannelLatestReadingResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Removes a meter from a route\n     * \n     * @param routeId The identifier for the route the meter is being remove from\n     * @param meterId The identifier for the meter being removed\n     */\n    public removeMeterWithHttpInfo(routeId: number, meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/route/${routeId}/meter/${meterId}'\n                    .replace('${' + 'routeId' + '}', String(routeId))\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'routeId' is not null or undefined\n        if (routeId === null || routeId === undefined) {\n            throw new Error('Required parameter routeId was null or undefined when calling removeMeter.');\n        }\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling removeMeter.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { AdjustedCostTypeResponse } from '../model/adjustedCostTypeResponse';\nimport { AucRangeRequest } from '../model/aucRangeRequest';\nimport { AucRangeResponse } from '../model/aucRangeResponse';\nimport { BaselineProcessorRequest } from '../model/baselineProcessorRequest';\nimport { BaselineProcessorResponse } from '../model/baselineProcessorResponse';\nimport { BulkBaselineProcessorRequest } from '../model/bulkBaselineProcessorRequest';\nimport { BulkMeterCostAvoidanceSettings } from '../model/bulkMeterCostAvoidanceSettings';\nimport { CalculateSavingsRequest } from '../model/calculateSavingsRequest';\nimport { CostAvoidanceTask } from '../model/costAvoidanceTask';\nimport { FilterEdit } from '../model/filterEdit';\nimport { FilterResponse } from '../model/filterResponse';\nimport { GenericCount } from '../model/genericCount';\nimport { ManualAdjustmentRequest } from '../model/manualAdjustmentRequest';\nimport { OtherSavingsCategory } from '../model/otherSavingsCategory';\nimport { OtherSavingsCategoryRequest } from '../model/otherSavingsCategoryRequest';\nimport { OtherSavingsRequest } from '../model/otherSavingsRequest';\nimport { OtherSavingsResponse } from '../model/otherSavingsResponse';\nimport { SavingsMeterBillDailyResponse } from '../model/savingsMeterBillDailyResponse';\nimport { SavingsMeterBillResponse } from '../model/savingsMeterBillResponse';\nimport { SpecialAdjustmentCreate } from '../model/specialAdjustmentCreate';\nimport { SpecialAdjustmentEdit } from '../model/specialAdjustmentEdit';\nimport { SpecialAdjustmentMethod } from '../model/specialAdjustmentMethod';\nimport { SpecialAdjustmentResponse } from '../model/specialAdjustmentResponse';\nimport { SpecialAdjustmentType } from '../model/specialAdjustmentType';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SavingsService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Mass update certain cost avoidance settings for meters that match the filter conditions Baseline and Savings will be reprocessed for affected meters\n     * \n     * @param body Filters and new cost avoidance setting values\n     */\n    public bulkEditMeterCostAvoidanceSettings(body?: BulkMeterCostAvoidanceSettings, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CostAvoidanceTask> {\n        return this.bulkEditMeterCostAvoidanceSettingsWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CostAvoidanceTask>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Regenerate cost avoidance baseline for the meters that match the filter conditions and then reprocess their savings\n     * \n     * @param body Settings and filter conditions for baseline processing\n     */\n    public bulkGenerateBaseline(body?: BulkBaselineProcessorRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CostAvoidanceTask> {\n        return this.bulkGenerateBaselineWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CostAvoidanceTask>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Calculate savings for the meters that match the filter conditions, using the provided settings\n     * \n     * @param body Settings and filter conditions for savings processing\n     */\n    public calculateSavings(body?: CalculateSavingsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CostAvoidanceTask> {\n        return this.calculateSavingsWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CostAvoidanceTask>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Create an other savings adjustment Meter Cost Avoidance Savings will be re-calculated\n     * \n     * @param meterId The meter for which the other savings is being created\n     * @param body Data representing the other savings adjustment being created\n     */\n    public createOtherSavings(meterId: number, body?: OtherSavingsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<OtherSavingsResponse> {\n        return this.createOtherSavingsWithHttpInfo(meterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<OtherSavingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Create other savings category\n     * \n     * @param body Data representing the other saving category being created\n     */\n    public createOtherSavingsCategory(body?: OtherSavingsCategoryRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<OtherSavingsCategory> {\n        return this.createOtherSavingsCategoryWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<OtherSavingsCategory>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Create a new special adjustment Meter Cost Avoidance Savings will be re-calculated\n     * \n     * @param meterId The meter for which to create a special adjustment\n     * @param body Data representing the special adjustment being created\n     */\n    public createSpecialAdjustment(meterId: number, body?: SpecialAdjustmentCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<SpecialAdjustmentResponse> {\n        return this.createSpecialAdjustmentWithHttpInfo(meterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<SpecialAdjustmentResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete an other savings adjustment\n     * \n     * @param meterId The meter for which the other savings is being deleted\n     * @param otherSavingsId The other saving identifier which is being deleted\n     */\n    public deleteOtherSavings(meterId: number, otherSavingsId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteOtherSavingsWithHttpInfo(meterId, otherSavingsId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete a special adjustment Meter Cost Avoidance Savings will be re-calculated\n     * \n     * @param meterId The meter from which to delete the special adjustment\n     * @param specialAdjustmentId The special adjustment to delete\n     */\n    public deleteSpecialAdjustmentById(meterId: number, specialAdjustmentId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteSpecialAdjustmentByIdWithHttpInfo(meterId, specialAdjustmentId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit the average unit cost \\&quot;acceptable range\\&quot; values for cost avoidance for one or more commodities Cost Avoidance Savings will be re-calculated for all bills for meters having the affected commodities\n     * \n     * @param body Data representing one or more average unit cost ranges to edit\n     */\n    public editAucRanges(body?: Array<AucRangeRequest>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<AucRangeResponse>> {\n        return this.editAucRangesWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<AucRangeResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * \n     * \n     */\n    public editCostAvoidanceSettings(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.editCostAvoidanceSettingsWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit an other savings adjustment Meter Cost Avoidance Savings will be re-calculated\n     * \n     * @param meterId The meter whose other savings is being edited\n     * @param otherSavingsId The other savings to edit\n     * @param body Data representing the other savings adjustment being edited\n     */\n    public editOtherSavings(meterId: number, otherSavingsId: number, body?: OtherSavingsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<OtherSavingsResponse> {\n        return this.editOtherSavingsWithHttpInfo(meterId, otherSavingsId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<OtherSavingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit a special adjustment Meter Cost Avoidance Savings will be re-calculated\n     * \n     * @param meterId The meter with the special adjustment to edit\n     * @param specialAdjustmentId The special adjustment to edit\n     * @param body Data representing the special adjustment being edited\n     */\n    public editSpecialAdjustment(meterId: number, specialAdjustmentId: number, body?: SpecialAdjustmentEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<SpecialAdjustmentResponse> {\n        return this.editSpecialAdjustmentWithHttpInfo(meterId, specialAdjustmentId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<SpecialAdjustmentResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Executes the baseline and cost avoidance processors with provided baseline and cost avoidance settings for the provided meter.  Results are not saved unless the \\&quot;save\\&quot; flag is set to true. If \\&quot;save\\&quot; is true, MeterSavingsSettings-Manage permission is also required\n     * \n     * @param meterId ID of the meter for which baseline will be reprocessed\n     * @param save If true, the baseline results will be saved to the database\n     * @param body Provided baseline and avoidance settings\n     */\n    public generateBaseline(meterId: number, save?: boolean, body?: BaselineProcessorRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BaselineProcessorResponse> {\n        return this.generateBaselineWithHttpInfo(meterId, save, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BaselineProcessorResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Executes the baseline processor with stored baseline settings for the provided meter\n     * \n     * @param meterId ID of the meter for which baseline data will be returned\n     */\n    public generateBaselineGet(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BaselineProcessorResponse> {\n        return this.generateBaselineGetWithHttpInfo(meterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BaselineProcessorResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a other savings for a meter\n     * \n     * @param meterId The meter for which the other savings are being retrieved\n     */\n    public getAllOtherSavings(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<OtherSavingsResponse>> {\n        return this.getAllOtherSavingsWithHttpInfo(meterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<OtherSavingsResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get the average unit cost \\&quot;acceptable range\\&quot; values for cost avoidance for each commodity\n     * \n     */\n    public getAucRanges(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<AucRangeResponse>> {\n        return this.getAucRangesWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<AucRangeResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Return available filters for Cost Avoidance processors Filters: - Commodity ID - Commodity Name - Meter Group Name - Building Group Name - Topmost Place Code - Topmost Place Name\n     * \n     */\n    public getCostAvoidanceFilters(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<FilterResponse>> {\n        return this.getCostAvoidanceFiltersWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<FilterResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Count the number of meters that match the filter conditions for cost avoidance bulk actions\n     * \n     * @param onlyMetersInCAP Whether or not to only include meters in the count which are already participating in cost avoidance\n     * @param body The filters used when counting the meters\n     */\n    public getCostAvoidanceMeterCount(onlyMetersInCAP?: boolean, body?: Array<FilterEdit>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<GenericCount> {\n        return this.getCostAvoidanceMeterCountWithHttpInfo(onlyMetersInCAP, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<GenericCount>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * \n     * \n     */\n    public getCostAvoidanceSettings(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.getCostAvoidanceSettingsWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get one other savings for a meter\n     * \n     * @param meterId The meter for which the other savings are being retrieved\n     * @param otherSavingsId The identifier for the other savings record which is being retrieved\n     */\n    public getOneOtherSavings(meterId: number, otherSavingsId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<OtherSavingsResponse> {\n        return this.getOneOtherSavingsWithHttpInfo(meterId, otherSavingsId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<OtherSavingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get other savings categories\n     * \n     */\n    public getOtherSavingsCategories(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<OtherSavingsCategory>> {\n        return this.getOtherSavingsCategoriesWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<OtherSavingsCategory>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Gets a list of the Adjusted Cost Types\n     * \n     */\n    public getSavingsAdjustedCostTypeList(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<AdjustedCostTypeResponse>> {\n        return this.getSavingsAdjustedCostTypeListWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<AdjustedCostTypeResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a single Savings Details record of usage and cost avoidance for a meter and bill\n     * \n     * @param meterId The meter for which to retrieve data\n     * @param billId The bill for which to retrieve data\n     */\n    public getSavingsMeterBill(meterId: number, billId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<SavingsMeterBillResponse> {\n        return this.getSavingsMeterBillWithHttpInfo(meterId, billId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<SavingsMeterBillResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get cost avoidance savings by day for a meter and bill\n     * \n     * @param meterId The meter for which to retrieve data\n     * @param billId The bill for which to retrieve data\n     */\n    public getSavingsMeterBillDaily(meterId: number, billId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<SavingsMeterBillDailyResponse> {\n        return this.getSavingsMeterBillDailyWithHttpInfo(meterId, billId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<SavingsMeterBillDailyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get Savings Details of usage and cost avoidance for a meter&#39;s bills\n     * \n     * @param meterId The meter for which to retrieve data\n     * @param numberOfYears Number of years of data to return; includes the current year - Defaults to 5\n     */\n    public getSavingsMeterBillList(meterId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<SavingsMeterBillResponse>> {\n        return this.getSavingsMeterBillListWithHttpInfo(meterId, numberOfYears, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<SavingsMeterBillResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a single cost avoidance task by its unique ID\n     * \n     * @param taskId \n     */\n    public getSavingsTask(taskId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CostAvoidanceTask> {\n        return this.getSavingsTaskWithHttpInfo(taskId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CostAvoidanceTask>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a list of cost avoidance tasks NOTE: does not include cost avoidance tasks created from prior versions of the software\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getSavingsTasks(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<CostAvoidanceTask>> {\n        return this.getSavingsTasksWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<CostAvoidanceTask>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a single special adjustment by its unique ID\n     * \n     * @param meterId The meter for which to return the special adjustment\n     * @param specialAdjustmentId Unique ID of the special adjustment to return\n     */\n    public getSpecialAdjustment(meterId: number, specialAdjustmentId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<SpecialAdjustmentResponse> {\n        return this.getSpecialAdjustmentWithHttpInfo(meterId, specialAdjustmentId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<SpecialAdjustmentResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get Special Adjustment Methods\n     * \n     */\n    public getSpecialAdjustmentMethods(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<SpecialAdjustmentMethod>> {\n        return this.getSpecialAdjustmentMethodsWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<SpecialAdjustmentMethod>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get Special Adjustment Types\n     * \n     */\n    public getSpecialAdjustmentTypes(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<SpecialAdjustmentType>> {\n        return this.getSpecialAdjustmentTypesWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<SpecialAdjustmentType>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get all the special adjustments for the meter\n     * \n     * @param meterId The meter for which to return special adjustment\n     */\n    public getSpecialAdjustments(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<SpecialAdjustmentResponse>> {\n        return this.getSpecialAdjustmentsWithHttpInfo(meterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<SpecialAdjustmentResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Creates or removes manual adjustments to savings for a provided meter and bill\n     * \n     * @param meterId The meter for which the manual adjustment is being made\n     * @param billId The bill for which the manual adjustment is being made\n     * @param body \n     */\n    public manualAdjustment(meterId: number, billId: number, body?: ManualAdjustmentRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.manualAdjustmentWithHttpInfo(meterId, billId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Mass update certain cost avoidance settings for meters that match the filter conditions Baseline and Savings will be reprocessed for affected meters\n     * \n     * @param body Filters and new cost avoidance setting values\n     */\n    public bulkEditMeterCostAvoidanceSettingsWithHttpInfo(body?: BulkMeterCostAvoidanceSettings, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CostAvoidanceTask>> {\n        const path = this.basePath + '/api/v3/savings/meter';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CostAvoidanceTask>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Regenerate cost avoidance baseline for the meters that match the filter conditions and then reprocess their savings\n     * \n     * @param body Settings and filter conditions for baseline processing\n     */\n    public bulkGenerateBaselineWithHttpInfo(body?: BulkBaselineProcessorRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CostAvoidanceTask>> {\n        const path = this.basePath + '/api/v3/savings/baseline/exec';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CostAvoidanceTask>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Calculate savings for the meters that match the filter conditions, using the provided settings\n     * \n     * @param body Settings and filter conditions for savings processing\n     */\n    public calculateSavingsWithHttpInfo(body?: CalculateSavingsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CostAvoidanceTask>> {\n        const path = this.basePath + '/api/v3/savings/exec';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CostAvoidanceTask>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Create an other savings adjustment Meter Cost Avoidance Savings will be re-calculated\n     * \n     * @param meterId The meter for which the other savings is being created\n     * @param body Data representing the other savings adjustment being created\n     */\n    public createOtherSavingsWithHttpInfo(meterId: number, body?: OtherSavingsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<OtherSavingsResponse>> {\n        const path = this.basePath + '/api/v3/savings/meter/${meterId}/adjustment/othersavings'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling createOtherSavings.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<OtherSavingsResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Create other savings category\n     * \n     * @param body Data representing the other saving category being created\n     */\n    public createOtherSavingsCategoryWithHttpInfo(body?: OtherSavingsCategoryRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<OtherSavingsCategory>> {\n        const path = this.basePath + '/api/v3/savings/adjustment/othersavings/category';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<OtherSavingsCategory>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Create a new special adjustment Meter Cost Avoidance Savings will be re-calculated\n     * \n     * @param meterId The meter for which to create a special adjustment\n     * @param body Data representing the special adjustment being created\n     */\n    public createSpecialAdjustmentWithHttpInfo(meterId: number, body?: SpecialAdjustmentCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<SpecialAdjustmentResponse>> {\n        const path = this.basePath + '/api/v3/savings/meter/${meterId}/adjustment/special'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling createSpecialAdjustment.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<SpecialAdjustmentResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Delete an other savings adjustment\n     * \n     * @param meterId The meter for which the other savings is being deleted\n     * @param otherSavingsId The other saving identifier which is being deleted\n     */\n    public deleteOtherSavingsWithHttpInfo(meterId: number, otherSavingsId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/savings/meter/${meterId}/adjustment/othersavings/${otherSavingsId}'\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'otherSavingsId' + '}', String(otherSavingsId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling deleteOtherSavings.');\n        }\n        // verify required parameter 'otherSavingsId' is not null or undefined\n        if (otherSavingsId === null || otherSavingsId === undefined) {\n            throw new Error('Required parameter otherSavingsId was null or undefined when calling deleteOtherSavings.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Delete a special adjustment Meter Cost Avoidance Savings will be re-calculated\n     * \n     * @param meterId The meter from which to delete the special adjustment\n     * @param specialAdjustmentId The special adjustment to delete\n     */\n    public deleteSpecialAdjustmentByIdWithHttpInfo(meterId: number, specialAdjustmentId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/savings/meter/${meterId}/adjustment/special/${specialAdjustmentId}'\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'specialAdjustmentId' + '}', String(specialAdjustmentId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling deleteSpecialAdjustmentById.');\n        }\n        // verify required parameter 'specialAdjustmentId' is not null or undefined\n        if (specialAdjustmentId === null || specialAdjustmentId === undefined) {\n            throw new Error('Required parameter specialAdjustmentId was null or undefined when calling deleteSpecialAdjustmentById.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Edit the average unit cost \\&quot;acceptable range\\&quot; values for cost avoidance for one or more commodities Cost Avoidance Savings will be re-calculated for all bills for meters having the affected commodities\n     * \n     * @param body Data representing one or more average unit cost ranges to edit\n     */\n    public editAucRangesWithHttpInfo(body?: Array<AucRangeRequest>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<AucRangeResponse>>> {\n        const path = this.basePath + '/api/v3/savings/auc';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<AucRangeResponse>>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * \n     * \n     */\n    public editCostAvoidanceSettingsWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/savings/settings';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edit an other savings adjustment Meter Cost Avoidance Savings will be re-calculated\n     * \n     * @param meterId The meter whose other savings is being edited\n     * @param otherSavingsId The other savings to edit\n     * @param body Data representing the other savings adjustment being edited\n     */\n    public editOtherSavingsWithHttpInfo(meterId: number, otherSavingsId: number, body?: OtherSavingsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<OtherSavingsResponse>> {\n        const path = this.basePath + '/api/v3/savings/meter/${meterId}/adjustment/othersavings/${otherSavingsId}'\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'otherSavingsId' + '}', String(otherSavingsId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling editOtherSavings.');\n        }\n        // verify required parameter 'otherSavingsId' is not null or undefined\n        if (otherSavingsId === null || otherSavingsId === undefined) {\n            throw new Error('Required parameter otherSavingsId was null or undefined when calling editOtherSavings.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<OtherSavingsResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edit a special adjustment Meter Cost Avoidance Savings will be re-calculated\n     * \n     * @param meterId The meter with the special adjustment to edit\n     * @param specialAdjustmentId The special adjustment to edit\n     * @param body Data representing the special adjustment being edited\n     */\n    public editSpecialAdjustmentWithHttpInfo(meterId: number, specialAdjustmentId: number, body?: SpecialAdjustmentEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<SpecialAdjustmentResponse>> {\n        const path = this.basePath + '/api/v3/savings/meter/${meterId}/adjustment/special/${specialAdjustmentId}'\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'specialAdjustmentId' + '}', String(specialAdjustmentId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling editSpecialAdjustment.');\n        }\n        // verify required parameter 'specialAdjustmentId' is not null or undefined\n        if (specialAdjustmentId === null || specialAdjustmentId === undefined) {\n            throw new Error('Required parameter specialAdjustmentId was null or undefined when calling editSpecialAdjustment.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<SpecialAdjustmentResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Executes the baseline and cost avoidance processors with provided baseline and cost avoidance settings for the provided meter.  Results are not saved unless the \\&quot;save\\&quot; flag is set to true. If \\&quot;save\\&quot; is true, MeterSavingsSettings-Manage permission is also required\n     * \n     * @param meterId ID of the meter for which baseline will be reprocessed\n     * @param save If true, the baseline results will be saved to the database\n     * @param body Provided baseline and avoidance settings\n     */\n    public generateBaselineWithHttpInfo(meterId: number, save?: boolean, body?: BaselineProcessorRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BaselineProcessorResponse>> {\n        const path = this.basePath + '/api/v3/savings/meter/${meterId}/baseline'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling generateBaseline.');\n        }\n        if (save !== undefined) {\n            queryParameters = queryParameters.set('save', <any>save);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BaselineProcessorResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Executes the baseline processor with stored baseline settings for the provided meter\n     * \n     * @param meterId ID of the meter for which baseline data will be returned\n     */\n    public generateBaselineGetWithHttpInfo(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BaselineProcessorResponse>> {\n        const path = this.basePath + '/api/v3/savings/meter/${meterId}/baseline'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling generateBaselineGet.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BaselineProcessorResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a other savings for a meter\n     * \n     * @param meterId The meter for which the other savings are being retrieved\n     */\n    public getAllOtherSavingsWithHttpInfo(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<OtherSavingsResponse>>> {\n        const path = this.basePath + '/api/v3/savings/meter/${meterId}/adjustment/othersavings'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getAllOtherSavings.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<OtherSavingsResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get the average unit cost \\&quot;acceptable range\\&quot; values for cost avoidance for each commodity\n     * \n     */\n    public getAucRangesWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<AucRangeResponse>>> {\n        const path = this.basePath + '/api/v3/savings/auc';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<AucRangeResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Return available filters for Cost Avoidance processors Filters: - Commodity ID - Commodity Name - Meter Group Name - Building Group Name - Topmost Place Code - Topmost Place Name\n     * \n     */\n    public getCostAvoidanceFiltersWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<FilterResponse>>> {\n        const path = this.basePath + '/api/v3/savings/filters';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<FilterResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Count the number of meters that match the filter conditions for cost avoidance bulk actions\n     * \n     * @param onlyMetersInCAP Whether or not to only include meters in the count which are already participating in cost avoidance\n     * @param body The filters used when counting the meters\n     */\n    public getCostAvoidanceMeterCountWithHttpInfo(onlyMetersInCAP?: boolean, body?: Array<FilterEdit>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<GenericCount>> {\n        const path = this.basePath + '/api/v3/savings/meter/count';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (onlyMetersInCAP !== undefined) {\n            queryParameters = queryParameters.set('onlyMetersInCAP', <any>onlyMetersInCAP);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<GenericCount>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * \n     * \n     */\n    public getCostAvoidanceSettingsWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/savings/settings';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get one other savings for a meter\n     * \n     * @param meterId The meter for which the other savings are being retrieved\n     * @param otherSavingsId The identifier for the other savings record which is being retrieved\n     */\n    public getOneOtherSavingsWithHttpInfo(meterId: number, otherSavingsId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<OtherSavingsResponse>> {\n        const path = this.basePath + '/api/v3/savings/meter/${meterId}/adjustment/othersavings/${otherSavingsId}'\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'otherSavingsId' + '}', String(otherSavingsId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getOneOtherSavings.');\n        }\n        // verify required parameter 'otherSavingsId' is not null or undefined\n        if (otherSavingsId === null || otherSavingsId === undefined) {\n            throw new Error('Required parameter otherSavingsId was null or undefined when calling getOneOtherSavings.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<OtherSavingsResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get other savings categories\n     * \n     */\n    public getOtherSavingsCategoriesWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<OtherSavingsCategory>>> {\n        const path = this.basePath + '/api/v3/savings/adjustment/othersavings/category';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<OtherSavingsCategory>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Gets a list of the Adjusted Cost Types\n     * \n     */\n    public getSavingsAdjustedCostTypeListWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<AdjustedCostTypeResponse>>> {\n        const path = this.basePath + '/api/v3/savings/adjustedCostType';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<AdjustedCostTypeResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a single Savings Details record of usage and cost avoidance for a meter and bill\n     * \n     * @param meterId The meter for which to retrieve data\n     * @param billId The bill for which to retrieve data\n     */\n    public getSavingsMeterBillWithHttpInfo(meterId: number, billId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<SavingsMeterBillResponse>> {\n        const path = this.basePath + '/api/v3/savings/meter/${meterId}/bill/${billId}'\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'billId' + '}', String(billId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getSavingsMeterBill.');\n        }\n        // verify required parameter 'billId' is not null or undefined\n        if (billId === null || billId === undefined) {\n            throw new Error('Required parameter billId was null or undefined when calling getSavingsMeterBill.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<SavingsMeterBillResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get cost avoidance savings by day for a meter and bill\n     * \n     * @param meterId The meter for which to retrieve data\n     * @param billId The bill for which to retrieve data\n     */\n    public getSavingsMeterBillDailyWithHttpInfo(meterId: number, billId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<SavingsMeterBillDailyResponse>> {\n        const path = this.basePath + '/api/v3/savings/meter/${meterId}/bill/${billId}/daily'\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'billId' + '}', String(billId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getSavingsMeterBillDaily.');\n        }\n        // verify required parameter 'billId' is not null or undefined\n        if (billId === null || billId === undefined) {\n            throw new Error('Required parameter billId was null or undefined when calling getSavingsMeterBillDaily.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<SavingsMeterBillDailyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get Savings Details of usage and cost avoidance for a meter&#39;s bills\n     * \n     * @param meterId The meter for which to retrieve data\n     * @param numberOfYears Number of years of data to return; includes the current year - Defaults to 5\n     */\n    public getSavingsMeterBillListWithHttpInfo(meterId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<SavingsMeterBillResponse>>> {\n        const path = this.basePath + '/api/v3/savings/meter/${meterId}/bill'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getSavingsMeterBillList.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<SavingsMeterBillResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a single cost avoidance task by its unique ID\n     * \n     * @param taskId \n     */\n    public getSavingsTaskWithHttpInfo(taskId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CostAvoidanceTask>> {\n        const path = this.basePath + '/api/v3/savings/task/${taskId}'\n                    .replace('${' + 'taskId' + '}', String(taskId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'taskId' is not null or undefined\n        if (taskId === null || taskId === undefined) {\n            throw new Error('Required parameter taskId was null or undefined when calling getSavingsTask.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CostAvoidanceTask>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a list of cost avoidance tasks NOTE: does not include cost avoidance tasks created from prior versions of the software\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getSavingsTasksWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<CostAvoidanceTask>>> {\n        const path = this.basePath + '/api/v3/savings/task';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<CostAvoidanceTask>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a single special adjustment by its unique ID\n     * \n     * @param meterId The meter for which to return the special adjustment\n     * @param specialAdjustmentId Unique ID of the special adjustment to return\n     */\n    public getSpecialAdjustmentWithHttpInfo(meterId: number, specialAdjustmentId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<SpecialAdjustmentResponse>> {\n        const path = this.basePath + '/api/v3/savings/meter/${meterId}/adjustment/special/${specialAdjustmentId}'\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'specialAdjustmentId' + '}', String(specialAdjustmentId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getSpecialAdjustment.');\n        }\n        // verify required parameter 'specialAdjustmentId' is not null or undefined\n        if (specialAdjustmentId === null || specialAdjustmentId === undefined) {\n            throw new Error('Required parameter specialAdjustmentId was null or undefined when calling getSpecialAdjustment.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<SpecialAdjustmentResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get Special Adjustment Methods\n     * \n     */\n    public getSpecialAdjustmentMethodsWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<SpecialAdjustmentMethod>>> {\n        const path = this.basePath + '/api/v3/savings/adjustment/special/method';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<SpecialAdjustmentMethod>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get Special Adjustment Types\n     * \n     */\n    public getSpecialAdjustmentTypesWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<SpecialAdjustmentType>>> {\n        const path = this.basePath + '/api/v3/savings/adjustment/special/type';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<SpecialAdjustmentType>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get all the special adjustments for the meter\n     * \n     * @param meterId The meter for which to return special adjustment\n     */\n    public getSpecialAdjustmentsWithHttpInfo(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<SpecialAdjustmentResponse>>> {\n        const path = this.basePath + '/api/v3/savings/meter/${meterId}/adjustment/special'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getSpecialAdjustments.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<SpecialAdjustmentResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Creates or removes manual adjustments to savings for a provided meter and bill\n     * \n     * @param meterId The meter for which the manual adjustment is being made\n     * @param billId The bill for which the manual adjustment is being made\n     * @param body \n     */\n    public manualAdjustmentWithHttpInfo(meterId: number, billId: number, body?: ManualAdjustmentRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/savings/meter/${meterId}/bill/${billId}/manualadjustment'\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'billId' + '}', String(billId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling manualAdjustment.');\n        }\n        // verify required parameter 'billId' is not null or undefined\n        if (billId === null || billId === undefined) {\n            throw new Error('Required parameter billId was null or undefined when calling manualAdjustment.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Post, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { ScheduleCreate } from '../model/scheduleCreate';\nimport { ScheduleEdit } from '../model/scheduleEdit';\nimport { ScheduleResponse } from '../model/scheduleResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class ScheduleService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Creates a schedule\n     * \n     * @param body Data representing the schedule being created\n     */\n    public createSchedule(body?: ScheduleCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ScheduleResponse> {\n        return this.createScheduleWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ScheduleResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes a schedule\n     * \n     * @param scheduleId The schedule identifier\n     */\n    public deleteSchedule(scheduleId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteScheduleWithHttpInfo(scheduleId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits a schedule\n     * \n     * @param scheduleId The schedule identifier\n     * @param body Data representing the schedule being edited\n     */\n    public editSchedule(scheduleId: number, body?: ScheduleEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ScheduleResponse> {\n        return this.editScheduleWithHttpInfo(scheduleId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ScheduleResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves the specified schedule\n     * \n     * @param scheduleId The schedule identifier\n     */\n    public getSchedule(scheduleId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ScheduleResponse> {\n        return this.getScheduleWithHttpInfo(scheduleId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ScheduleResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all schedules\n     * \n     */\n    public getSchedules(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<ScheduleResponse>> {\n        return this.getSchedulesWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<ScheduleResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Creates a schedule\n     * \n     * @param body Data representing the schedule being created\n     */\n    public createScheduleWithHttpInfo(body?: ScheduleCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ScheduleResponse>> {\n        const path = this.basePath + '/api/v202406/schedule';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ScheduleResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Deletes a schedule\n     * \n     * @param scheduleId The schedule identifier\n     */\n    public deleteScheduleWithHttpInfo(scheduleId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202406/schedule/${scheduleId}'\n                    .replace('${' + 'scheduleId' + '}', String(scheduleId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'scheduleId' is not null or undefined\n        if (scheduleId === null || scheduleId === undefined) {\n            throw new Error('Required parameter scheduleId was null or undefined when calling deleteSchedule.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Edits a schedule\n     * \n     * @param scheduleId The schedule identifier\n     * @param body Data representing the schedule being edited\n     */\n    public editScheduleWithHttpInfo(scheduleId: number, body?: ScheduleEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ScheduleResponse>> {\n        const path = this.basePath + '/api/v202406/schedule/${scheduleId}'\n                    .replace('${' + 'scheduleId' + '}', String(scheduleId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'scheduleId' is not null or undefined\n        if (scheduleId === null || scheduleId === undefined) {\n            throw new Error('Required parameter scheduleId was null or undefined when calling editSchedule.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ScheduleResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Retrieves the specified schedule\n     * \n     * @param scheduleId The schedule identifier\n     */\n    public getScheduleWithHttpInfo(scheduleId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ScheduleResponse>> {\n        const path = this.basePath + '/api/v202406/schedule/${scheduleId}'\n                    .replace('${' + 'scheduleId' + '}', String(scheduleId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'scheduleId' is not null or undefined\n        if (scheduleId === null || scheduleId === undefined) {\n            throw new Error('Required parameter scheduleId was null or undefined when calling getSchedule.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ScheduleResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all schedules\n     * \n     */\n    public getSchedulesWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<ScheduleResponse>>> {\n        const path = this.basePath + '/api/v202406/schedule';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<ScheduleResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { SearchResponse } from '../model/searchResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SearchService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Searches for Accounts, Meters, Cost Centers, Places, Place Groups, Emissions Sources, Collections, Vendors, and Bills that match the provided query text. For the bill search to return any results, the query text should be an exact match to a bill ID.\n     * Unless searching by id, not all properties on child objects are set in the response DTO, this is for performance reasons\n     * @param query The text to search\n     * @param limit The maximum number of items to return per entity type. Defaults to 10, valid range of 0 to 100.              0 is treated as default for backwards compatibility reasons.\n     */\n    public getSearchResult(query?: string, limit?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<SearchResponse> {\n        return this.getSearchResultWithHttpInfo(query, limit, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<SearchResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Searches for Accounts, Meters, Cost Centers, Places, Place Groups, Emissions Sources, Collections, Vendors, and Bills that match the provided query text. For the bill search to return any results, the query text should be an exact match to a bill ID.\n     * Unless searching by id, not all properties on child objects are set in the response DTO, this is for performance reasons\n     * @param query The text to search\n     * @param limit The maximum number of items to return per entity type. Defaults to 10, valid range of 0 to 100.              0 is treated as default for backwards compatibility reasons.\n     */\n    public getSearchResultWithHttpInfo(query?: string, limit?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<SearchResponse>> {\n        const path = this.basePath + '/api/v3/search';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (query !== undefined) {\n            queryParameters = queryParameters.set('query', <any>query);\n        }\n\n        if (limit !== undefined) {\n            queryParameters = queryParameters.set('limit', <any>limit);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<SearchResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { EsaSentinelPredictionResponse } from '../model/esaSentinelPredictionResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SentinelService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Retrieves all sentinel predictions for a given ESA channel within a specified local date/time range.\n     * \n     * @param esaChannelId The ID of the ESA channel to retrieve predictions for.\n     * @param startLocalDate The start local date/time of the range for which predictions are requested. If equal to endLocalDate, returns sentinel prediction at this date and time (if present). Otherwise, returns sentinel predictions since this date and time (exclusive).\n     * @param endLocalDate The end local date/time of the range for which predictions are requested If equal to startLocalDate, returns sentinel prediction at this date and time (if present). Otherwise, returns sentinel predictions up to (and including) this date and time.\n     */\n    public getSentinelPredictions(esaChannelId: number, startLocalDate?: Date, endLocalDate?: Date, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<EsaSentinelPredictionResponse>> {\n        return this.getSentinelPredictionsWithHttpInfo(esaChannelId, startLocalDate, endLocalDate, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<EsaSentinelPredictionResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Retrieves all sentinel predictions for a given ESA channel within a specified local date/time range.\n     * \n     * @param esaChannelId The ID of the ESA channel to retrieve predictions for.\n     * @param startLocalDate The start local date/time of the range for which predictions are requested. If equal to endLocalDate, returns sentinel prediction at this date and time (if present). Otherwise, returns sentinel predictions since this date and time (exclusive).\n     * @param endLocalDate The end local date/time of the range for which predictions are requested If equal to startLocalDate, returns sentinel prediction at this date and time (if present). Otherwise, returns sentinel predictions up to (and including) this date and time.\n     */\n    public getSentinelPredictionsWithHttpInfo(esaChannelId: number, startLocalDate?: Date, endLocalDate?: Date, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<EsaSentinelPredictionResponse>>> {\n        const path = this.basePath + '/api/v202411/sentinel/${esaChannelId}'\n                    .replace('${' + 'esaChannelId' + '}', String(esaChannelId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'esaChannelId' is not null or undefined\n        if (esaChannelId === null || esaChannelId === undefined) {\n            throw new Error('Required parameter esaChannelId was null or undefined when calling getSentinelPredictions.');\n        }\n        if (startLocalDate !== undefined) {\n            queryParameters = queryParameters.set('StartLocalDate', <any>startLocalDate.toISOString());\n        }\n\n        if (endLocalDate !== undefined) {\n            queryParameters = queryParameters.set('EndLocalDate', <any>endLocalDate.toISOString());\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<EsaSentinelPredictionResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { FilterResponse } from '../model/filterResponse';\nimport { Setup } from '../model/setup';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SetupService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Returns an Excel file used within SetupSheets\n     * \n     * @param type \n     * @param filter \n     */\n    public getSetupSheet(type?: string, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<string> {\n        return this.getSetupSheetWithHttpInfo(type, filter, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<string>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Returns the applicable filters for a given type to filter down SetupSheet Templates\n     * \n     * @param type \n     */\n    public getSetupSheetFilters(type?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<FilterResponse>> {\n        return this.getSetupSheetFiltersWithHttpInfo(type, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<FilterResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Import a budget setup sheet\n     * \n     * @param budgetId The budget identifier\n     * @param versionId The budget version identifier\n     * @param body The budget sheet file contents\n     */\n    public postBudgetSetupSheet(budgetId: number, versionId: number, body?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Setup> {\n        return this.postBudgetSetupSheetWithHttpInfo(budgetId, versionId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Setup>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Processes a SetupSheet Excel file Accepts a base64 string representation of an xlsx file File must be Microsoft Excel 2007 or later.\n     * \n     * @param body \n     */\n    public postSetupSheet(body?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Setup> {\n        return this.postSetupSheetWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Setup>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Returns an Excel file used within SetupSheets\n     * \n     * @param type \n     * @param filter \n     */\n    public getSetupSheetWithHttpInfo(type?: string, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<string>> {\n        const path = this.basePath + '/api/v3/setup';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (type !== undefined) {\n            queryParameters = queryParameters.set('type', <any>type);\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<string>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Returns the applicable filters for a given type to filter down SetupSheet Templates\n     * \n     * @param type \n     */\n    public getSetupSheetFiltersWithHttpInfo(type?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<FilterResponse>>> {\n        const path = this.basePath + '/api/v3/setup/filter';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (type !== undefined) {\n            queryParameters = queryParameters.set('type', <any>type);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<FilterResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Import a budget setup sheet\n     * \n     * @param budgetId The budget identifier\n     * @param versionId The budget version identifier\n     * @param body The budget sheet file contents\n     */\n    public postBudgetSetupSheetWithHttpInfo(budgetId: number, versionId: number, body?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Setup>> {\n        const path = this.basePath + '/api/v202311/setup/budget/${budgetId}/version/${versionId}'\n                    .replace('${' + 'budgetId' + '}', String(budgetId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'budgetId' is not null or undefined\n        if (budgetId === null || budgetId === undefined) {\n            throw new Error('Required parameter budgetId was null or undefined when calling postBudgetSetupSheet.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling postBudgetSetupSheet.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/vnd.ms-excel'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Setup>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Processes a SetupSheet Excel file Accepts a base64 string representation of an xlsx file File must be Microsoft Excel 2007 or later.\n     * \n     * @param body \n     */\n    public postSetupSheetWithHttpInfo(body?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Setup>> {\n        const path = this.basePath + '/api/v3/setup';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/vnd.ms-excel'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Setup>(RequestMethod.Post, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { GenericCount } from '../model/genericCount';\nimport { LinkSubAccountsRequest } from '../model/linkSubAccountsRequest';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SummaryAccountService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Link sub accounts to a summary account This only adds sub accounts to a summary account.  It will not remove any links.  Use the Delete to remove accounts. Because the number of linked sub accounts can be large we just return the total number of accounts linked To get the list of all sub accounts linked to a summary account call the Get All Accounts API with the summaryAccountID filter.\n     * \n     * @param summaryAccountId \n     * @param body \n     */\n    public linkSubAccounts(summaryAccountId: number, body?: LinkSubAccountsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<GenericCount> {\n        return this.linkSubAccountsWithHttpInfo(summaryAccountId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<GenericCount>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Unlink a sub account from a summary account\n     * \n     * @param summaryAccountId \n     * @param subAccountId \n     */\n    public unlinkSubAccount(summaryAccountId: number, subAccountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.unlinkSubAccountWithHttpInfo(summaryAccountId, subAccountId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Unlink all sub accounts from a summary account\n     * \n     * @param summaryAccountId \n     */\n    public unlinkSubAccounts(summaryAccountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.unlinkSubAccountsWithHttpInfo(summaryAccountId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Link sub accounts to a summary account This only adds sub accounts to a summary account.  It will not remove any links.  Use the Delete to remove accounts. Because the number of linked sub accounts can be large we just return the total number of accounts linked To get the list of all sub accounts linked to a summary account call the Get All Accounts API with the summaryAccountID filter.\n     * \n     * @param summaryAccountId \n     * @param body \n     */\n    public linkSubAccountsWithHttpInfo(summaryAccountId: number, body?: LinkSubAccountsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<GenericCount>> {\n        const path = this.basePath + '/api/v202407/summaryAccount/${summaryAccountId}/subAccount'\n                    .replace('${' + 'summaryAccountId' + '}', String(summaryAccountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'summaryAccountId' is not null or undefined\n        if (summaryAccountId === null || summaryAccountId === undefined) {\n            throw new Error('Required parameter summaryAccountId was null or undefined when calling linkSubAccounts.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<GenericCount>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Unlink a sub account from a summary account\n     * \n     * @param summaryAccountId \n     * @param subAccountId \n     */\n    public unlinkSubAccountWithHttpInfo(summaryAccountId: number, subAccountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202407/summaryAccount/${summaryAccountId}/subAccount/${subAccountId}'\n                    .replace('${' + 'summaryAccountId' + '}', String(summaryAccountId))\n                    .replace('${' + 'subAccountId' + '}', String(subAccountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'summaryAccountId' is not null or undefined\n        if (summaryAccountId === null || summaryAccountId === undefined) {\n            throw new Error('Required parameter summaryAccountId was null or undefined when calling unlinkSubAccount.');\n        }\n        // verify required parameter 'subAccountId' is not null or undefined\n        if (subAccountId === null || subAccountId === undefined) {\n            throw new Error('Required parameter subAccountId was null or undefined when calling unlinkSubAccount.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Unlink all sub accounts from a summary account\n     * \n     * @param summaryAccountId \n     */\n    public unlinkSubAccountsWithHttpInfo(summaryAccountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202407/summaryAccount/${summaryAccountId}/subAccount'\n                    .replace('${' + 'summaryAccountId' + '}', String(summaryAccountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'summaryAccountId' is not null or undefined\n        if (summaryAccountId === null || summaryAccountId === undefined) {\n            throw new Error('Required parameter summaryAccountId was null or undefined when calling unlinkSubAccounts.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { UserCreateRequest } from '../model/userCreateRequest';\nimport { UserEditRequest } from '../model/userEditRequest';\nimport { UserResponse } from '../model/userResponse';\nimport { UserRoleRequest } from '../model/userRoleRequest';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SystemUserService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Create a new user. Requires Manage permission for Users &amp; Roles\n     * \n     * @param body The object defining the properties for the new user\n     */\n    public createUser(body?: UserCreateRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UserResponse> {\n        return this.createUserWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UserResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit a system user&#39;s role.\n     * \n     * @param userId \n     * @param body \n     */\n    public editSystemUsersRole(userId: number, body?: UserRoleRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UserResponse> {\n        return this.editSystemUsersRoleWithHttpInfo(userId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UserResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit an existing user. Requires Manage permission for Users &amp; Roles. Please note that password is optional; all other items are required. MaxApprovalAmount may be null; if there is an existing value and null is passed, the existing value will be overwritten.\n     * \n     * @param userId The ID of the user to edit\n     * @param body The object defining the updated properties of the existing user.\n     */\n    public editUser(userId: number, body?: UserEditRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UserResponse> {\n        return this.editUserWithHttpInfo(userId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UserResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Return a specific user and its properties. Requires View permission for Users &amp; Roles\n     * \n     * @param userId The ID of the user to return\n     */\n    public getUser(userId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UserResponse> {\n        return this.getUserWithHttpInfo(userId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UserResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Gets a list of users. Requires View permission for Users &amp; Roles.  If this permission is not available, restricted set of properties are returned. There is a paginated version of GetUsers available at /api/v202512/user/paginated\n     * \n     * @param filter \n     */\n    public getUsers(filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<UserResponse>> {\n        return this.getUsersWithHttpInfo(filter, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<UserResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Gets a paginated list of users. Requires View permission for Users &amp; Roles.  If this permission is not available, restricted set of properties are returned.\n     * \n     * @param filter \n     * @param orderBy \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getUsersPaginated(filter?: string, orderBy?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<UserResponse>> {\n        return this.getUsersPaginatedWithHttpInfo(filter, orderBy, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<UserResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Create a new user. Requires Manage permission for Users &amp; Roles\n     * \n     * @param body The object defining the properties for the new user\n     */\n    public createUserWithHttpInfo(body?: UserCreateRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UserResponse>> {\n        const path = this.basePath + '/api/v202406/user';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UserResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Edit a system user&#39;s role.\n     * \n     * @param userId \n     * @param body \n     */\n    public editSystemUsersRoleWithHttpInfo(userId: number, body?: UserRoleRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UserResponse>> {\n        const path = this.basePath + '/api/v202206/systemUser/${userId}/role'\n                    .replace('${' + 'userId' + '}', String(userId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'userId' is not null or undefined\n        if (userId === null || userId === undefined) {\n            throw new Error('Required parameter userId was null or undefined when calling editSystemUsersRole.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UserResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edit an existing user. Requires Manage permission for Users &amp; Roles. Please note that password is optional; all other items are required. MaxApprovalAmount may be null; if there is an existing value and null is passed, the existing value will be overwritten.\n     * \n     * @param userId The ID of the user to edit\n     * @param body The object defining the updated properties of the existing user.\n     */\n    public editUserWithHttpInfo(userId: number, body?: UserEditRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UserResponse>> {\n        const path = this.basePath + '/api/v202406/user/${userId}'\n                    .replace('${' + 'userId' + '}', String(userId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'userId' is not null or undefined\n        if (userId === null || userId === undefined) {\n            throw new Error('Required parameter userId was null or undefined when calling editUser.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UserResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Return a specific user and its properties. Requires View permission for Users &amp; Roles\n     * \n     * @param userId The ID of the user to return\n     */\n    public getUserWithHttpInfo(userId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UserResponse>> {\n        const path = this.basePath + '/api/v3/user/${userId}'\n                    .replace('${' + 'userId' + '}', String(userId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'userId' is not null or undefined\n        if (userId === null || userId === undefined) {\n            throw new Error('Required parameter userId was null or undefined when calling getUser.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UserResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Gets a list of users. Requires View permission for Users &amp; Roles.  If this permission is not available, restricted set of properties are returned. There is a paginated version of GetUsers available at /api/v202512/user/paginated\n     * \n     * @param filter \n     */\n    public getUsersWithHttpInfo(filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<UserResponse>>> {\n        const path = this.basePath + '/api/v3/user';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<UserResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Gets a paginated list of users. Requires View permission for Users &amp; Roles.  If this permission is not available, restricted set of properties are returned.\n     * \n     * @param filter \n     * @param orderBy \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getUsersPaginatedWithHttpInfo(filter?: string, orderBy?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<UserResponse>>> {\n        const path = this.basePath + '/api/v202512/user/paginated';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (orderBy !== undefined) {\n            queryParameters = queryParameters.set('orderBy', <any>orderBy);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<UserResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { TagResponse } from '../model/tagResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class TagService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Get a list of tags within a tag category. Report tags are the only supported category at this time.\n     * \n     * @param filter Currently only supports the &#39;tagCategory&#39; filter with a value of &#39;report&#39;, may be expanded in the future\n     */\n    public getTags(filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<TagResponse>> {\n        return this.getTagsWithHttpInfo(filter, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<TagResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Get a list of tags within a tag category. Report tags are the only supported category at this time.\n     * \n     * @param filter Currently only supports the &#39;tagCategory&#39; filter with a value of &#39;report&#39;, may be expanded in the future\n     */\n    public getTagsWithHttpInfo(filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<TagResponse>>> {\n        const path = this.basePath + '/api/v3/tag';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<TagResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { TaskEdit } from '../model/taskEdit';\nimport { TaskResponse } from '../model/taskResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class TaskService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Edits the note/comment associated with a task\n     * \n     * @param taskId The identifier for the task being edited\n     * @param body Data representing the note\n     */\n    public editTask(taskId: number, body?: TaskEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<TaskResponse> {\n        return this.editTaskWithHttpInfo(taskId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<TaskResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves a task by its GUID. The output property could potentially contain a large amount of data. If response time or size becomes an issue, use field reduction to eliminate the output field.\n     * \n     * @param taskGuid The GUID of the task\n     */\n    public getTask(taskGuid: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<TaskResponse> {\n        return this.getTaskWithHttpInfo(taskGuid, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<TaskResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves a task&#39;s error log as an EXCEL file by its GUID. At this time error logs can be downloaded for \\&quot;ReadingImport\\&quot; task type only\n     * \n     * @param taskGuid The GUID of the task\n     */\n    public getTaskOutputFile(taskGuid: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.getTaskOutputFileWithHttpInfo(taskGuid, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves a list of tasks\n     * \n     * @param taskTypeCode Task type code. Acceptable values are:      AuditGroup,      CostAvoidance,     Report,     Chargeback,     SetupSheet,     UnitsOfMeasure,     Accrual,     BillImport,      EnergyStar,     BillExport,     ReadingImport,     SummarizeReading,     BillUnexport,     V7CostAvoidance,     V7Accrual,     Budget     CostUnitUpdate,     RecordImportPfl,     EsaReadingImpPfl,     RecordImport  *This combines record import setup sheet tasks and record import with a profile tasks,     EsaReadingImport  *This combines Esa readings import setup sheet tasks and Esa Reading import with a profile tasks\n     * @param filter Filters to apply\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getTasks(taskTypeCode?: string, filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<TaskResponse>> {\n        return this.getTasksWithHttpInfo(taskTypeCode, filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<TaskResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Edits the note/comment associated with a task\n     * \n     * @param taskId The identifier for the task being edited\n     * @param body Data representing the note\n     */\n    public editTaskWithHttpInfo(taskId: number, body?: TaskEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<TaskResponse>> {\n        const path = this.basePath + '/api/v3/task/${taskId}'\n                    .replace('${' + 'taskId' + '}', String(taskId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'taskId' is not null or undefined\n        if (taskId === null || taskId === undefined) {\n            throw new Error('Required parameter taskId was null or undefined when calling editTask.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<TaskResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Retrieves a task by its GUID. The output property could potentially contain a large amount of data. If response time or size becomes an issue, use field reduction to eliminate the output field.\n     * \n     * @param taskGuid The GUID of the task\n     */\n    public getTaskWithHttpInfo(taskGuid: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<TaskResponse>> {\n        const path = this.basePath + '/api/v3/task/${taskGuid}'\n                    .replace('${' + 'taskGuid' + '}', String(taskGuid));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'taskGuid' is not null or undefined\n        if (taskGuid === null || taskGuid === undefined) {\n            throw new Error('Required parameter taskGuid was null or undefined when calling getTask.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<TaskResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves a task&#39;s error log as an EXCEL file by its GUID. At this time error logs can be downloaded for \\&quot;ReadingImport\\&quot; task type only\n     * \n     * @param taskGuid The GUID of the task\n     */\n    public getTaskOutputFileWithHttpInfo(taskGuid: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/task/${taskGuid}/errorOutput'\n                    .replace('${' + 'taskGuid' + '}', String(taskGuid));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'taskGuid' is not null or undefined\n        if (taskGuid === null || taskGuid === undefined) {\n            throw new Error('Required parameter taskGuid was null or undefined when calling getTaskOutputFile.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves a list of tasks\n     * \n     * @param taskTypeCode Task type code. Acceptable values are:      AuditGroup,      CostAvoidance,     Report,     Chargeback,     SetupSheet,     UnitsOfMeasure,     Accrual,     BillImport,      EnergyStar,     BillExport,     ReadingImport,     SummarizeReading,     BillUnexport,     V7CostAvoidance,     V7Accrual,     Budget     CostUnitUpdate,     RecordImportPfl,     EsaReadingImpPfl,     RecordImport  *This combines record import setup sheet tasks and record import with a profile tasks,     EsaReadingImport  *This combines Esa readings import setup sheet tasks and Esa Reading import with a profile tasks\n     * @param filter Filters to apply\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getTasksWithHttpInfo(taskTypeCode?: string, filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<TaskResponse>>> {\n        const path = this.basePath + '/api/v3/task';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (taskTypeCode !== undefined) {\n            queryParameters = queryParameters.set('taskTypeCode', <any>taskTypeCode);\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<TaskResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { CreateTemplateFromBill } from '../model/createTemplateFromBill';\nimport { TemplateResponse } from '../model/templateResponse';\nimport { TemplateVersion } from '../model/templateVersion';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class TemplateService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Creates a new Template from an existing Bill&#39;s cost-only line items belonging to the provided Account (lines which came from a vendor template will be dropped).\n     * \n     * @param billId Id of Bill from which to create the Template\n     * @param accountId Id of Account whose bodylines from source bill will be used to create the Template\n     * @param body Additional information about new Template\n     */\n    public createAccountTemplateFromBill(billId: number, accountId: number, body?: CreateTemplateFromBill, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<TemplateResponse> {\n        return this.createAccountTemplateFromBillWithHttpInfo(billId, accountId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<TemplateResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Creates a new Template from an existing Bill&#39;s line items belonging to the provided Meter\n     * \n     * @param billId Id of Bill from which to create the Template\n     * @param meterId Id of Meter whose bodylines from source bill will be used to create the Template\n     * @param body Additional information about new Template\n     */\n    public createTemplateFromBill(billId: number, meterId: number, body?: CreateTemplateFromBill, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<TemplateResponse> {\n        return this.createTemplateFromBillWithHttpInfo(billId, meterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<TemplateResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves one template\n     * \n     * @param templateId The template identifier for the template being retrieved\n     */\n    public getTemplate(templateId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<TemplateResponse> {\n        return this.getTemplateWithHttpInfo(templateId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<TemplateResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves one template version for a given template\n     * \n     * @param templateId The template identifier for the template version being retrieved\n     * @param versionId The identifier for the template version being retrieved\n     */\n    public getTemplateVersion(templateId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<TemplateVersion> {\n        return this.getTemplateVersionWithHttpInfo(templateId, versionId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<TemplateVersion>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all template versions for a given template\n     * \n     * @param templateId The template identifier for the template version being retrieved\n     */\n    public getTemplateVersions(templateId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<TemplateVersion>> {\n        return this.getTemplateVersionsWithHttpInfo(templateId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<TemplateVersion>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all templates\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getTemplates(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<TemplateResponse>> {\n        return this.getTemplatesWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<TemplateResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Update current template for all passed in accountMeterIds If the accountMeter is an account only record the template must be for the &#39;Money&#39; commodity or an error will be thrown If the accountMeter has no template assigned one will be created If the accountMeter&#39;s latest template assignment is end dated, a new assignment will be created starting from the latest end date All must be successfully updated otherwise none are updated and an error is returned\n     * \n     * @param templateId The template to apply to the provided accountMeterIds\n     * @param body List of accountMeterIds whose template will be updated\n     */\n    public updateAccountMetersLatestTemplate(templateId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.updateAccountMetersLatestTemplateWithHttpInfo(templateId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Creates a new Template from an existing Bill&#39;s cost-only line items belonging to the provided Account (lines which came from a vendor template will be dropped).\n     * \n     * @param billId Id of Bill from which to create the Template\n     * @param accountId Id of Account whose bodylines from source bill will be used to create the Template\n     * @param body Additional information about new Template\n     */\n    public createAccountTemplateFromBillWithHttpInfo(billId: number, accountId: number, body?: CreateTemplateFromBill, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<TemplateResponse>> {\n        const path = this.basePath + '/api/v202206/bill/${billId}/account/${accountId}/template'\n                    .replace('${' + 'billId' + '}', String(billId))\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'billId' is not null or undefined\n        if (billId === null || billId === undefined) {\n            throw new Error('Required parameter billId was null or undefined when calling createAccountTemplateFromBill.');\n        }\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling createAccountTemplateFromBill.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<TemplateResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Creates a new Template from an existing Bill&#39;s line items belonging to the provided Meter\n     * \n     * @param billId Id of Bill from which to create the Template\n     * @param meterId Id of Meter whose bodylines from source bill will be used to create the Template\n     * @param body Additional information about new Template\n     */\n    public createTemplateFromBillWithHttpInfo(billId: number, meterId: number, body?: CreateTemplateFromBill, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<TemplateResponse>> {\n        const path = this.basePath + '/api/v3/bill/${billId}/meter/${meterId}/template'\n                    .replace('${' + 'billId' + '}', String(billId))\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'billId' is not null or undefined\n        if (billId === null || billId === undefined) {\n            throw new Error('Required parameter billId was null or undefined when calling createTemplateFromBill.');\n        }\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling createTemplateFromBill.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<TemplateResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Retrieves one template\n     * \n     * @param templateId The template identifier for the template being retrieved\n     */\n    public getTemplateWithHttpInfo(templateId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<TemplateResponse>> {\n        const path = this.basePath + '/api/v3/template/${templateId}'\n                    .replace('${' + 'templateId' + '}', String(templateId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'templateId' is not null or undefined\n        if (templateId === null || templateId === undefined) {\n            throw new Error('Required parameter templateId was null or undefined when calling getTemplate.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<TemplateResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves one template version for a given template\n     * \n     * @param templateId The template identifier for the template version being retrieved\n     * @param versionId The identifier for the template version being retrieved\n     */\n    public getTemplateVersionWithHttpInfo(templateId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<TemplateVersion>> {\n        const path = this.basePath + '/api/v3/template/${templateId}/version/${versionId}'\n                    .replace('${' + 'templateId' + '}', String(templateId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'templateId' is not null or undefined\n        if (templateId === null || templateId === undefined) {\n            throw new Error('Required parameter templateId was null or undefined when calling getTemplateVersion.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling getTemplateVersion.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<TemplateVersion>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all template versions for a given template\n     * \n     * @param templateId The template identifier for the template version being retrieved\n     */\n    public getTemplateVersionsWithHttpInfo(templateId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<TemplateVersion>>> {\n        const path = this.basePath + '/api/v3/template/${templateId}/version'\n                    .replace('${' + 'templateId' + '}', String(templateId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'templateId' is not null or undefined\n        if (templateId === null || templateId === undefined) {\n            throw new Error('Required parameter templateId was null or undefined when calling getTemplateVersions.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<TemplateVersion>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all templates\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getTemplatesWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<TemplateResponse>>> {\n        const path = this.basePath + '/api/v3/template';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<TemplateResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Update current template for all passed in accountMeterIds If the accountMeter is an account only record the template must be for the &#39;Money&#39; commodity or an error will be thrown If the accountMeter has no template assigned one will be created If the accountMeter&#39;s latest template assignment is end dated, a new assignment will be created starting from the latest end date All must be successfully updated otherwise none are updated and an error is returned\n     * \n     * @param templateId The template to apply to the provided accountMeterIds\n     * @param body List of accountMeterIds whose template will be updated\n     */\n    public updateAccountMetersLatestTemplateWithHttpInfo(templateId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/template/${templateId}/accountMeter'\n                    .replace('${' + 'templateId' + '}', String(templateId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'templateId' is not null or undefined\n        if (templateId === null || templateId === undefined) {\n            throw new Error('Required parameter templateId was null or undefined when calling updateAccountMetersLatestTemplate.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { TimeZoneResponse } from '../model/timeZoneResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class TimeZoneService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Retrieves the list of Time Zones\n     * \n     */\n    public getTimeZones(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<TimeZoneResponse>> {\n        return this.getTimeZonesWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<TimeZoneResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Retrieves the list of Time Zones\n     * \n     */\n    public getTimeZonesWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<TimeZoneResponse>>> {\n        const path = this.basePath + '/api/v3/timezone';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<TimeZoneResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { UDFCreate } from '../model/uDFCreate';\nimport { UDFEdit } from '../model/uDFEdit';\nimport { UDFResponse } from '../model/uDFResponse';\nimport { UDFUpdate } from '../model/uDFUpdate';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class UDFService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Creates a user defined field / custom field\n     * \n     * @param body Data representing the user defined field / custom field being created\n     */\n    public createUDF(body?: UDFCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UDFResponse> {\n        return this.createUDFWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UDFResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes a user defined field / custom field. Currently NO confirmation is required\n     * \n     * @param udfId The identifier for the user defined field / custom field being deleted\n     */\n    public deleteUDF(udfId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteUDFWithHttpInfo(udfId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits a list of user defined fields / custom fields\n     * \n     * @param udfType Valid udfTypes include \\&quot;Account\\&quot;, \\&quot;Vendor\\&quot;, \\&quot;Place\\&quot;, \\&quot;Meter, \\&quot;ChannelVersion\\&quot;, \\&quot;Rate\\&quot;, \\&quot;Bill\\&quot;, \\&quot;EnergyProject\\&quot;, \\&quot;Collection\\&quot;, and \\&quot;EmissionSource\\&quot;\n     * @param body \n     */\n    public editCustomFields(udfType: string, body?: Array<UDFUpdate>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<UDFResponse>> {\n        return this.editCustomFieldsWithHttpInfo(udfType, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<UDFResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits a user defined field / custom field\n     * \n     * @param udfId \n     * @param body Data representing the UDF being edited\n     */\n    public editUDF(udfId: number, body?: UDFEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UDFResponse> {\n        return this.editUDFWithHttpInfo(udfId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UDFResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves one user defined field / custom field\n     * \n     * @param udfId The user defined field / custom field identifier\n     */\n    public getUDF(udfId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UDFResponse> {\n        return this.getUDFWithHttpInfo(udfId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UDFResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all User defined fields/custom fields.  The array of UDFs can be filtered by UDF type.  Possible values for this filter include: \\&quot;Account\\&quot;, \\&quot;Meter\\&quot;, \\&quot;Place\\&quot;, \\&quot;Vendor\\&quot;, \\&quot;ChannelVersion\\&quot;, \\&quot;Rate\\&quot;, \\&quot;Bill\\&quot;, \\&quot;EnergyProject\\&quot;, \\&quot;Collection\\&quot;, and \\&quot;EmissionSource\\&quot;. See the filter property for more details\n     * \n     * @param filter \n     */\n    public getUDFs(filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<UDFResponse>> {\n        return this.getUDFsWithHttpInfo(filter, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<UDFResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Creates a user defined field / custom field\n     * \n     * @param body Data representing the user defined field / custom field being created\n     */\n    public createUDFWithHttpInfo(body?: UDFCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UDFResponse>> {\n        const path = this.basePath + '/api/v3/udf';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UDFResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Deletes a user defined field / custom field. Currently NO confirmation is required\n     * \n     * @param udfId The identifier for the user defined field / custom field being deleted\n     */\n    public deleteUDFWithHttpInfo(udfId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/udf/${udfId}'\n                    .replace('${' + 'udfId' + '}', String(udfId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'udfId' is not null or undefined\n        if (udfId === null || udfId === undefined) {\n            throw new Error('Required parameter udfId was null or undefined when calling deleteUDF.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Edits a list of user defined fields / custom fields\n     * \n     * @param udfType Valid udfTypes include \\&quot;Account\\&quot;, \\&quot;Vendor\\&quot;, \\&quot;Place\\&quot;, \\&quot;Meter, \\&quot;ChannelVersion\\&quot;, \\&quot;Rate\\&quot;, \\&quot;Bill\\&quot;, \\&quot;EnergyProject\\&quot;, \\&quot;Collection\\&quot;, and \\&quot;EmissionSource\\&quot;\n     * @param body \n     */\n    public editCustomFieldsWithHttpInfo(udfType: string, body?: Array<UDFUpdate>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<UDFResponse>>> {\n        const path = this.basePath + '/api/v3/udf/list/${udfType}'\n                    .replace('${' + 'udfType' + '}', String(udfType));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'udfType' is not null or undefined\n        if (udfType === null || udfType === undefined) {\n            throw new Error('Required parameter udfType was null or undefined when calling editCustomFields.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<UDFResponse>>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edits a user defined field / custom field\n     * \n     * @param udfId \n     * @param body Data representing the UDF being edited\n     */\n    public editUDFWithHttpInfo(udfId: number, body?: UDFEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UDFResponse>> {\n        const path = this.basePath + '/api/v3/udf/${udfId}'\n                    .replace('${' + 'udfId' + '}', String(udfId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'udfId' is not null or undefined\n        if (udfId === null || udfId === undefined) {\n            throw new Error('Required parameter udfId was null or undefined when calling editUDF.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UDFResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Retrieves one user defined field / custom field\n     * \n     * @param udfId The user defined field / custom field identifier\n     */\n    public getUDFWithHttpInfo(udfId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UDFResponse>> {\n        const path = this.basePath + '/api/v3/udf/${udfId}'\n                    .replace('${' + 'udfId' + '}', String(udfId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'udfId' is not null or undefined\n        if (udfId === null || udfId === undefined) {\n            throw new Error('Required parameter udfId was null or undefined when calling getUDF.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UDFResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all User defined fields/custom fields.  The array of UDFs can be filtered by UDF type.  Possible values for this filter include: \\&quot;Account\\&quot;, \\&quot;Meter\\&quot;, \\&quot;Place\\&quot;, \\&quot;Vendor\\&quot;, \\&quot;ChannelVersion\\&quot;, \\&quot;Rate\\&quot;, \\&quot;Bill\\&quot;, \\&quot;EnergyProject\\&quot;, \\&quot;Collection\\&quot;, and \\&quot;EmissionSource\\&quot;. See the filter property for more details\n     * \n     * @param filter \n     */\n    public getUDFsWithHttpInfo(filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<UDFResponse>>> {\n        const path = this.basePath + '/api/v3/udf';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<UDFResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { RollupUnitUpdate } from '../model/rollupUnitUpdate';\nimport { TaskResponse } from '../model/taskResponse';\nimport { Unit } from '../model/unit';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class UnitService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Retrieves all units\n     * \n     * @param filter \n     */\n    public getUnits(filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<Unit>> {\n        return this.getUnitsWithHttpInfo(filter, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<Unit>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Update common and global use units\n     * \n     * @param body \n     */\n    public updateUseRollupUnits(body?: RollupUnitUpdate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<TaskResponse> {\n        return this.updateUseRollupUnitsWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<TaskResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Retrieves all units\n     * \n     * @param filter \n     */\n    public getUnitsWithHttpInfo(filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<Unit>>> {\n        const path = this.basePath + '/api/v202305/unit';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<Unit>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Update common and global use units\n     * \n     * @param body \n     */\n    public updateUseRollupUnitsWithHttpInfo(body?: RollupUnitUpdate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<TaskResponse>> {\n        const path = this.basePath + '/api/v3/unit/rollup';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<TaskResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { UserChild } from '../model/userChild';\nimport { UserGroupRequest } from '../model/userGroupRequest';\nimport { UserGroupResponse } from '../model/userGroupResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class UserGroupService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Create a user group\n     * \n     * @param body Data representing the user group being created\n     */\n    public createUserGroup(body?: UserGroupRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UserGroupResponse> {\n        return this.createUserGroupWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UserGroupResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete a user group\n     * \n     * @param userGroupId Id of the user group to delete\n     */\n    public deleteUserGroup(userGroupId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteUserGroupWithHttpInfo(userGroupId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit a user group\n     * \n     * @param userGroupId Id of the user group to edit\n     * @param body Data representing the user group being edited\n     */\n    public editUserGroup(userGroupId: number, body?: UserGroupRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UserGroupResponse> {\n        return this.editUserGroupWithHttpInfo(userGroupId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UserGroupResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Gets a user group\n     * \n     * @param userGroupId Id of the user group to return\n     */\n    public getUserGroup(userGroupId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UserGroupResponse> {\n        return this.getUserGroupWithHttpInfo(userGroupId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UserGroupResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Gets a list of user group members\n     * \n     * @param userGroupId Id of the user group to get the list of members\n     */\n    public getUserGroupMembers(userGroupId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<UserChild>> {\n        return this.getUserGroupMembersWithHttpInfo(userGroupId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<UserChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Gets a list of user groups\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getUserGroups(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<UserGroupResponse>> {\n        return this.getUserGroupsWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<UserGroupResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Create a user group\n     * \n     * @param body Data representing the user group being created\n     */\n    public createUserGroupWithHttpInfo(body?: UserGroupRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UserGroupResponse>> {\n        const path = this.basePath + '/api/v3/userGroup';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UserGroupResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Delete a user group\n     * \n     * @param userGroupId Id of the user group to delete\n     */\n    public deleteUserGroupWithHttpInfo(userGroupId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/userGroup/${userGroupId}'\n                    .replace('${' + 'userGroupId' + '}', String(userGroupId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'userGroupId' is not null or undefined\n        if (userGroupId === null || userGroupId === undefined) {\n            throw new Error('Required parameter userGroupId was null or undefined when calling deleteUserGroup.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Edit a user group\n     * \n     * @param userGroupId Id of the user group to edit\n     * @param body Data representing the user group being edited\n     */\n    public editUserGroupWithHttpInfo(userGroupId: number, body?: UserGroupRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UserGroupResponse>> {\n        const path = this.basePath + '/api/v3/userGroup/${userGroupId}'\n                    .replace('${' + 'userGroupId' + '}', String(userGroupId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'userGroupId' is not null or undefined\n        if (userGroupId === null || userGroupId === undefined) {\n            throw new Error('Required parameter userGroupId was null or undefined when calling editUserGroup.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UserGroupResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Gets a user group\n     * \n     * @param userGroupId Id of the user group to return\n     */\n    public getUserGroupWithHttpInfo(userGroupId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UserGroupResponse>> {\n        const path = this.basePath + '/api/v3/userGroup/${userGroupId}'\n                    .replace('${' + 'userGroupId' + '}', String(userGroupId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'userGroupId' is not null or undefined\n        if (userGroupId === null || userGroupId === undefined) {\n            throw new Error('Required parameter userGroupId was null or undefined when calling getUserGroup.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UserGroupResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Gets a list of user group members\n     * \n     * @param userGroupId Id of the user group to get the list of members\n     */\n    public getUserGroupMembersWithHttpInfo(userGroupId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<UserChild>>> {\n        const path = this.basePath + '/api/v3/userGroup/${userGroupId}/member'\n                    .replace('${' + 'userGroupId' + '}', String(userGroupId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'userGroupId' is not null or undefined\n        if (userGroupId === null || userGroupId === undefined) {\n            throw new Error('Required parameter userGroupId was null or undefined when calling getUserGroupMembers.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<UserChild>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Gets a list of user groups\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getUserGroupsWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<UserGroupResponse>>> {\n        const path = this.basePath + '/api/v3/userGroup';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<UserGroupResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { HiddenRequest } from '../model/hiddenRequest';\nimport { SystemUserRoleResponse } from '../model/systemUserRoleResponse';\nimport { SystemUserRoleWithHiddenRequest } from '../model/systemUserRoleWithHiddenRequest';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class UserRoleService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * \n     * \n     * @param body \n     */\n    public createUserRole(body?: SystemUserRoleWithHiddenRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<SystemUserRoleResponse> {\n        return this.createUserRoleWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<SystemUserRoleResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes a user role\n     * \n     * @param userRoleId The identifier for the role being deleted\n     */\n    public deleteUserRole(userRoleId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteUserRoleWithHttpInfo(userRoleId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * \n     * \n     * @param userRoleId \n     * @param body \n     */\n    public editUserRole(userRoleId: number, body?: SystemUserRoleWithHiddenRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<SystemUserRoleResponse> {\n        return this.editUserRoleWithHttpInfo(userRoleId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<SystemUserRoleResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Gets a specific user role and its permissions You need Roles.Manage or UsersAndUserGroups.View for this API\n     * \n     * @param userRoleId The userRoleId to get\n     */\n    public getUserRole(userRoleId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<SystemUserRoleResponse> {\n        return this.getUserRoleWithHttpInfo(userRoleId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<SystemUserRoleResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Gets user roles and their permissions You need Roles.Manage or UsersAndUserGroups.View for this API\n     * \n     */\n    public getUserRoles(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<SystemUserRoleResponse>> {\n        return this.getUserRolesWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<SystemUserRoleResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * \n     * \n     * @param userRoleId \n     * @param body \n     */\n    public setUserRoleHidden(userRoleId: number, body?: HiddenRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<SystemUserRoleResponse> {\n        return this.setUserRoleHiddenWithHttpInfo(userRoleId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<SystemUserRoleResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * \n     * \n     * @param body \n     */\n    public createUserRoleWithHttpInfo(body?: SystemUserRoleWithHiddenRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<SystemUserRoleResponse>> {\n        const path = this.basePath + '/api/v202206/userrole';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<SystemUserRoleResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Deletes a user role\n     * \n     * @param userRoleId The identifier for the role being deleted\n     */\n    public deleteUserRoleWithHttpInfo(userRoleId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/userrole/${userRoleId}'\n                    .replace('${' + 'userRoleId' + '}', String(userRoleId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'userRoleId' is not null or undefined\n        if (userRoleId === null || userRoleId === undefined) {\n            throw new Error('Required parameter userRoleId was null or undefined when calling deleteUserRole.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * \n     * \n     * @param userRoleId \n     * @param body \n     */\n    public editUserRoleWithHttpInfo(userRoleId: number, body?: SystemUserRoleWithHiddenRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<SystemUserRoleResponse>> {\n        const path = this.basePath + '/api/v202206/userrole/${userRoleId}'\n                    .replace('${' + 'userRoleId' + '}', String(userRoleId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'userRoleId' is not null or undefined\n        if (userRoleId === null || userRoleId === undefined) {\n            throw new Error('Required parameter userRoleId was null or undefined when calling editUserRole.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<SystemUserRoleResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Gets a specific user role and its permissions You need Roles.Manage or UsersAndUserGroups.View for this API\n     * \n     * @param userRoleId The userRoleId to get\n     */\n    public getUserRoleWithHttpInfo(userRoleId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<SystemUserRoleResponse>> {\n        const path = this.basePath + '/api/v3/userrole/${userRoleId}'\n                    .replace('${' + 'userRoleId' + '}', String(userRoleId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'userRoleId' is not null or undefined\n        if (userRoleId === null || userRoleId === undefined) {\n            throw new Error('Required parameter userRoleId was null or undefined when calling getUserRole.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<SystemUserRoleResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Gets user roles and their permissions You need Roles.Manage or UsersAndUserGroups.View for this API\n     * \n     */\n    public getUserRolesWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<SystemUserRoleResponse>>> {\n        const path = this.basePath + '/api/v3/userrole';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<SystemUserRoleResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * \n     * \n     * @param userRoleId \n     * @param body \n     */\n    public setUserRoleHiddenWithHttpInfo(userRoleId: number, body?: HiddenRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<SystemUserRoleResponse>> {\n        const path = this.basePath + '/api/v202206/userrole/${userRoleId}/hidden'\n                    .replace('${' + 'userRoleId' + '}', String(userRoleId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'userRoleId' is not null or undefined\n        if (userRoleId === null || userRoleId === undefined) {\n            throw new Error('Required parameter userRoleId was null or undefined when calling setUserRoleHidden.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<SystemUserRoleResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { AddressLookup } from '../model/addressLookup';\nimport { CalculatedBillDetailsResponse } from '../model/calculatedBillDetailsResponse';\nimport { ChargebackProcessorSettingsForAggregations } from '../model/chargebackProcessorSettingsForAggregations';\nimport { ChargebackTaskResponse } from '../model/chargebackTaskResponse';\nimport { CreateUtilityPlatformMeter } from '../model/createUtilityPlatformMeter';\nimport { DataAccessRelease } from '../model/dataAccessRelease';\nimport { DataAccessReleaseNoFileRequest } from '../model/dataAccessReleaseNoFileRequest';\nimport { DataAccessReleaseRequest } from '../model/dataAccessReleaseRequest';\nimport { DataAccessReleaseState } from '../model/dataAccessReleaseState';\nimport { MeterSearchRequest } from '../model/meterSearchRequest';\nimport { MoveCreateMeter } from '../model/moveCreateMeter';\nimport { SendDataAccessReleaseRequest } from '../model/sendDataAccessReleaseRequest';\nimport { UpsertAggregateMeterRequest } from '../model/upsertAggregateMeterRequest';\nimport { UtilityPlatformMeter } from '../model/utilityPlatformMeter';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class UtilityPlatformService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Apply a release to a meter\n     * \n     * @param meterId The id of the meter\n     * @param body \n     */\n    public assignDataAccessRelease(meterId: number, body?: DataAccessReleaseRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<DataAccessReleaseState> {\n        return this.assignDataAccessReleaseWithHttpInfo(meterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<DataAccessReleaseState>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Create meters on a particular place\n     * \n     * @param placeId The id of the place\n     * @param body The meters to create on the place\n     */\n    public createUtilityPlatformMetersByPlace(placeId: number, body?: Array<CreateUtilityPlatformMeter>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<UtilityPlatformMeter>> {\n        return this.createUtilityPlatformMetersByPlaceWithHttpInfo(placeId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<UtilityPlatformMeter>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Process one or more Calculated Bill aggregations within a billing period range ending with the specified billing period. If billing period is not supplied, the current period will be assumed.\n     * \n     * @param body \n     */\n    public executeProcessorAggregations(body?: ChargebackProcessorSettingsForAggregations, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ChargebackTaskResponse> {\n        return this.executeProcessorAggregationsWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ChargebackTaskResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get data access release details\n     * \n     * @param dataAccessReleaseId The id of the data access release\n     */\n    public getDataAccessReleaseDetails(dataAccessReleaseId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<DataAccessRelease> {\n        return this.getDataAccessReleaseDetailsWithHttpInfo(dataAccessReleaseId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<DataAccessRelease>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get the status of a meter&#39;s data access release\n     * \n     * @param meterId The meter to get release state for\n     */\n    public getDataAccessReleaseState(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<DataAccessReleaseState> {\n        return this.getDataAccessReleaseStateWithHttpInfo(meterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<DataAccessReleaseState>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get meters on a particular place\n     * \n     * @param placeId The id of the place\n     */\n    public getUtilityPlatformMetersByPlace(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<UtilityPlatformMeter>> {\n        return this.getUtilityPlatformMetersByPlaceWithHttpInfo(placeId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<UtilityPlatformMeter>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Release all account and meters to a specific place\n     * \n     * @param placeId The id of the place for the released meters\n     * @param body \n     */\n    public releaseAccountAndAllMeterToABuilding(placeId: number, body?: DataAccessReleaseNoFileRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.releaseAccountAndAllMeterToABuildingWithHttpInfo(placeId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Search utility platform meters\n     * \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     * @param body The meter search criteria\n     */\n    public searchUtilityPlatformMeters(pageSize?: number, pageNumber?: number, body?: MeterSearchRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MoveCreateMeter>> {\n        return this.searchUtilityPlatformMetersWithHttpInfo(pageSize, pageNumber, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MoveCreateMeter>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Search service addresses\n     * \n     * @param address The address fragment to search for\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public searchUtilityPlatformServiceAddresses(address?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<AddressLookup>> {\n        return this.searchUtilityPlatformServiceAddressesWithHttpInfo(address, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<AddressLookup>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Email a data access release request\n     * \n     * @param meterId The meter that the release is for\n     * @param body The release request details\n     */\n    public sendDataAccessReleaseRequestEmail(meterId: number, body?: SendDataAccessReleaseRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.sendDataAccessReleaseRequestEmailWithHttpInfo(meterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Create a new aggregate meter, update an existing version, create a new version If AggregateMeterId is null: a new aggregate meter and version is always created If AggregateMeterId is not null: it must exist and only associated with 1 account otherwise error If AggregateMeterId exists: we will always update the Aggregate&#39;s MeterInfo and AccountInfo If AggregateMeterId exists and no version exists on the same account and meter with the specified billing period: a new version is created If AggregateMeterId exists and a version exists on the same account and meter with the specified billing period: the version is updated\n     * \n     * @param placeId The id of the place to insert the aggregate meter\n     * @param body The release request details\n     */\n    public upsertAggregateMeter(placeId: number, body?: UpsertAggregateMeterRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CalculatedBillDetailsResponse> {\n        return this.upsertAggregateMeterWithHttpInfo(placeId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CalculatedBillDetailsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Apply a release to a meter\n     * \n     * @param meterId The id of the meter\n     * @param body \n     */\n    public assignDataAccessReleaseWithHttpInfo(meterId: number, body?: DataAccessReleaseRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<DataAccessReleaseState>> {\n        const path = this.basePath + '/api/v202203/utilityPlatform/meter/${meterId}/release'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling assignDataAccessRelease.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<DataAccessReleaseState>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Create meters on a particular place\n     * \n     * @param placeId The id of the place\n     * @param body The meters to create on the place\n     */\n    public createUtilityPlatformMetersByPlaceWithHttpInfo(placeId: number, body?: Array<CreateUtilityPlatformMeter>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<UtilityPlatformMeter>>> {\n        const path = this.basePath + '/api/v202203/utilityPlatform/place/${placeId}/meter'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling createUtilityPlatformMetersByPlace.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<UtilityPlatformMeter>>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Process one or more Calculated Bill aggregations within a billing period range ending with the specified billing period. If billing period is not supplied, the current period will be assumed.\n     * \n     * @param body \n     */\n    public executeProcessorAggregationsWithHttpInfo(body?: ChargebackProcessorSettingsForAggregations, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ChargebackTaskResponse>> {\n        const path = this.basePath + '/api/v202203/utilityPlatform/aggregations/exec';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ChargebackTaskResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Get data access release details\n     * \n     * @param dataAccessReleaseId The id of the data access release\n     */\n    public getDataAccessReleaseDetailsWithHttpInfo(dataAccessReleaseId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<DataAccessRelease>> {\n        const path = this.basePath + '/api/v202203/utilityPlatform/dataAccessRelease/${dataAccessReleaseId}'\n                    .replace('${' + 'dataAccessReleaseId' + '}', String(dataAccessReleaseId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'dataAccessReleaseId' is not null or undefined\n        if (dataAccessReleaseId === null || dataAccessReleaseId === undefined) {\n            throw new Error('Required parameter dataAccessReleaseId was null or undefined when calling getDataAccessReleaseDetails.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<DataAccessRelease>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get the status of a meter&#39;s data access release\n     * \n     * @param meterId The meter to get release state for\n     */\n    public getDataAccessReleaseStateWithHttpInfo(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<DataAccessReleaseState>> {\n        const path = this.basePath + '/api/v202203/utilityPlatform/meter/${meterId}/dataAccessReleaseState'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getDataAccessReleaseState.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<DataAccessReleaseState>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get meters on a particular place\n     * \n     * @param placeId The id of the place\n     */\n    public getUtilityPlatformMetersByPlaceWithHttpInfo(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<UtilityPlatformMeter>>> {\n        const path = this.basePath + '/api/v202203/utilityPlatform/place/${placeId}/meter'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getUtilityPlatformMetersByPlace.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<UtilityPlatformMeter>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Release all account and meters to a specific place\n     * \n     * @param placeId The id of the place for the released meters\n     * @param body \n     */\n    public releaseAccountAndAllMeterToABuildingWithHttpInfo(placeId: number, body?: DataAccessReleaseNoFileRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202203/utilityPlatform/place/${placeId}/release'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling releaseAccountAndAllMeterToABuilding.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Search utility platform meters\n     * \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     * @param body The meter search criteria\n     */\n    public searchUtilityPlatformMetersWithHttpInfo(pageSize?: number, pageNumber?: number, body?: MeterSearchRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MoveCreateMeter>>> {\n        const path = this.basePath + '/api/v202203/utilityPlatform/meter/search';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MoveCreateMeter>>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Search service addresses\n     * \n     * @param address The address fragment to search for\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public searchUtilityPlatformServiceAddressesWithHttpInfo(address?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<AddressLookup>>> {\n        const path = this.basePath + '/api/v202203/utilityPlatform/address/search';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (address !== undefined) {\n            queryParameters = queryParameters.set('address', <any>address);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<AddressLookup>>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Email a data access release request\n     * \n     * @param meterId The meter that the release is for\n     * @param body The release request details\n     */\n    public sendDataAccessReleaseRequestEmailWithHttpInfo(meterId: number, body?: SendDataAccessReleaseRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202203/utilityPlatform/meter/${meterId}/sendDataAccessReleaseRequest'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling sendDataAccessReleaseRequestEmail.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Create a new aggregate meter, update an existing version, create a new version If AggregateMeterId is null: a new aggregate meter and version is always created If AggregateMeterId is not null: it must exist and only associated with 1 account otherwise error If AggregateMeterId exists: we will always update the Aggregate&#39;s MeterInfo and AccountInfo If AggregateMeterId exists and no version exists on the same account and meter with the specified billing period: a new version is created If AggregateMeterId exists and a version exists on the same account and meter with the specified billing period: the version is updated\n     * \n     * @param placeId The id of the place to insert the aggregate meter\n     * @param body The release request details\n     */\n    public upsertAggregateMeterWithHttpInfo(placeId: number, body?: UpsertAggregateMeterRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CalculatedBillDetailsResponse>> {\n        const path = this.basePath + '/api/v202203/utilityPlatform/place/${placeId}/aggregateMeter'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling upsertAggregateMeter.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CalculatedBillDetailsResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { TemplateVendorLineRequest } from '../model/templateVendorLineRequest';\nimport { TemplateVersion } from '../model/templateVersion';\nimport { UDFFieldChild } from '../model/uDFFieldChild';\nimport { UDFValue } from '../model/uDFValue';\nimport { UpdatedOnlyResult } from '../model/updatedOnlyResult';\nimport { VendorAuditEnable } from '../model/vendorAuditEnable';\nimport { VendorContractResponse } from '../model/vendorContractResponse';\nimport { VendorEdit } from '../model/vendorEdit';\nimport { VendorRequest } from '../model/vendorRequest';\nimport { VendorResponse } from '../model/vendorResponse';\nimport { VendorUDFResponse } from '../model/vendorUDFResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class VendorService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Add accounts to a vendor\n     * \n     * @param vendorId The identifier for the vendor to which accounts are being added\n     * @param body List of accountIds to move a new vendor\n     */\n    public addAccounts(vendorId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.addAccountsWithHttpInfo(vendorId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Copies any template attached to the provided sourceVendorId to each of the recipientVendorIds specified in the body. If the recipient vendor has a template defined, it will be replaced with the lines on the source vendor&#39;s template. If the recipient vendor does not have a template defined, a new template will be created with the lines on the source vendor&#39;s template.\n     * \n     * @param sourceVendorId Identifier for the \\&quot;Source\\&quot; vendor, which serves as the source for the template to be copied\n     * @param body List of identifiers for the \\&quot;Recipient\\&quot; vendors, who will each receive a copy of the template attached to the Source vendor\n     */\n    public copyVendorTemplate(sourceVendorId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.copyVendorTemplateWithHttpInfo(sourceVendorId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Creates a vendor\n     * \n     * @param body Data representing the vendor being created\n     */\n    public createVendor(body?: VendorRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<VendorResponse> {\n        return this.createVendorWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<VendorResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes a vendor\n     * \n     * @param vendorId The identifier for the vendor being deleted\n     */\n    public deleteVendor(vendorId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteVendorWithHttpInfo(vendorId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Download file for a vendor custom field\n     * \n     * @param vendorId \n     * @param udfId \n     */\n    public downloadVendorCustomFieldFile(vendorId: number, udfId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.downloadVendorCustomFieldFileWithHttpInfo(vendorId, udfId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits a vendor\n     * \n     * @param vendorId The identifier for the vendor being edited\n     * @param body Data representing the vendor being edited\n     */\n    public editVendor(vendorId: number, body?: VendorEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<VendorResponse> {\n        return this.editVendorWithHttpInfo(vendorId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<VendorResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits user defined field / custom field values for a particular vendor\n     * \n     * @param vendorId The identifier for the vendor\n     * @param body Data representing the vendor user defined fields / custom fields being edited\n     */\n    public editVendorUDFs(vendorId: number, body?: Array<UDFValue>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<UDFFieldChild>> {\n        return this.editVendorUDFsWithHttpInfo(vendorId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<UDFFieldChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves one vendor\n     * \n     * @param vendorId The identifier for the vendor being retrieved\n     */\n    public getVendor(vendorId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<VendorResponse> {\n        return this.getVendorWithHttpInfo(vendorId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<VendorResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all Contracts for a particular vendor.   Contracts are not supported in EnergyCAP Version 7, this API is for reading existing contracts only and may be removed in the future.\n     * \n     * @param vendorId The vendor identifier for which Contracts are being retrieved\n     */\n    public getVendorContracts(vendorId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<VendorContractResponse>> {\n        return this.getVendorContractsWithHttpInfo(vendorId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<VendorContractResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves the most recent template from the specified vendor\n     * \n     * @param vendorId The vendor identifier to search by\n     */\n    public getVendorTemplate(vendorId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<TemplateVersion> {\n        return this.getVendorTemplateWithHttpInfo(vendorId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<TemplateVersion>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all user defined fields / custom fields for a particular vendor\n     * \n     * @param vendorId The vendor identifier for which user defined field / custom field values are being retrieved\n     */\n    public getVendorUdfs(vendorId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<UDFFieldChild>> {\n        return this.getVendorUdfsWithHttpInfo(vendorId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<UDFFieldChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves an array of vendors. The array of vendors can be filtered by a number of criteria. See the filter property for more details\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getVendors(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<VendorResponse>> {\n        return this.getVendorsWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<VendorResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all user defined fields / custom fields for all vendors\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getVendorsUdfs(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<VendorUDFResponse>> {\n        return this.getVendorsUdfsWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<VendorUDFResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Updates the template for the specified vendor\n     * \n     * @param vendorId The vendor to apply the template to\n     * @param body Definition of the lines to apply to the template. If vendorLines is empty, any existing template will be deleted\n     */\n    public putVendorTemplate(vendorId: number, body?: Array<TemplateVendorLineRequest>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<TemplateVersion> {\n        return this.putVendorTemplateWithHttpInfo(vendorId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<TemplateVersion>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Enable or disable all accounts assigned to a vendor from audits\n     * \n     * @param vendorId The identifier for the vendor to act upon\n     * @param body \n     */\n    public setVendorAccountsAuditExclusion(vendorId: number, body?: VendorAuditEnable, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdatedOnlyResult> {\n        return this.setVendorAccountsAuditExclusionWithHttpInfo(vendorId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdatedOnlyResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Add accounts to a vendor\n     * \n     * @param vendorId The identifier for the vendor to which accounts are being added\n     * @param body List of accountIds to move a new vendor\n     */\n    public addAccountsWithHttpInfo(vendorId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/vendor/${vendorId}/account'\n                    .replace('${' + 'vendorId' + '}', String(vendorId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'vendorId' is not null or undefined\n        if (vendorId === null || vendorId === undefined) {\n            throw new Error('Required parameter vendorId was null or undefined when calling addAccounts.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Copies any template attached to the provided sourceVendorId to each of the recipientVendorIds specified in the body. If the recipient vendor has a template defined, it will be replaced with the lines on the source vendor&#39;s template. If the recipient vendor does not have a template defined, a new template will be created with the lines on the source vendor&#39;s template.\n     * \n     * @param sourceVendorId Identifier for the \\&quot;Source\\&quot; vendor, which serves as the source for the template to be copied\n     * @param body List of identifiers for the \\&quot;Recipient\\&quot; vendors, who will each receive a copy of the template attached to the Source vendor\n     */\n    public copyVendorTemplateWithHttpInfo(sourceVendorId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202206/vendor/${sourceVendorId}/template/copy'\n                    .replace('${' + 'sourceVendorId' + '}', String(sourceVendorId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'sourceVendorId' is not null or undefined\n        if (sourceVendorId === null || sourceVendorId === undefined) {\n            throw new Error('Required parameter sourceVendorId was null or undefined when calling copyVendorTemplate.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Creates a vendor\n     * \n     * @param body Data representing the vendor being created\n     */\n    public createVendorWithHttpInfo(body?: VendorRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<VendorResponse>> {\n        const path = this.basePath + '/api/v3/vendor';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<VendorResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Deletes a vendor\n     * \n     * @param vendorId The identifier for the vendor being deleted\n     */\n    public deleteVendorWithHttpInfo(vendorId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/vendor/${vendorId}'\n                    .replace('${' + 'vendorId' + '}', String(vendorId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'vendorId' is not null or undefined\n        if (vendorId === null || vendorId === undefined) {\n            throw new Error('Required parameter vendorId was null or undefined when calling deleteVendor.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Download file for a vendor custom field\n     * \n     * @param vendorId \n     * @param udfId \n     */\n    public downloadVendorCustomFieldFileWithHttpInfo(vendorId: number, udfId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202105/vendor/${vendorId}/udf/${udfId}/download'\n                    .replace('${' + 'vendorId' + '}', String(vendorId))\n                    .replace('${' + 'udfId' + '}', String(udfId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'vendorId' is not null or undefined\n        if (vendorId === null || vendorId === undefined) {\n            throw new Error('Required parameter vendorId was null or undefined when calling downloadVendorCustomFieldFile.');\n        }\n        // verify required parameter 'udfId' is not null or undefined\n        if (udfId === null || udfId === undefined) {\n            throw new Error('Required parameter udfId was null or undefined when calling downloadVendorCustomFieldFile.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Edits a vendor\n     * \n     * @param vendorId The identifier for the vendor being edited\n     * @param body Data representing the vendor being edited\n     */\n    public editVendorWithHttpInfo(vendorId: number, body?: VendorEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<VendorResponse>> {\n        const path = this.basePath + '/api/v202511/vendor/${vendorId}'\n                    .replace('${' + 'vendorId' + '}', String(vendorId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'vendorId' is not null or undefined\n        if (vendorId === null || vendorId === undefined) {\n            throw new Error('Required parameter vendorId was null or undefined when calling editVendor.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<VendorResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edits user defined field / custom field values for a particular vendor\n     * \n     * @param vendorId The identifier for the vendor\n     * @param body Data representing the vendor user defined fields / custom fields being edited\n     */\n    public editVendorUDFsWithHttpInfo(vendorId: number, body?: Array<UDFValue>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<UDFFieldChild>>> {\n        const path = this.basePath + '/api/v3/vendor/${vendorId}/udf'\n                    .replace('${' + 'vendorId' + '}', String(vendorId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'vendorId' is not null or undefined\n        if (vendorId === null || vendorId === undefined) {\n            throw new Error('Required parameter vendorId was null or undefined when calling editVendorUDFs.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<UDFFieldChild>>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Retrieves one vendor\n     * \n     * @param vendorId The identifier for the vendor being retrieved\n     */\n    public getVendorWithHttpInfo(vendorId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<VendorResponse>> {\n        const path = this.basePath + '/api/v3/vendor/${vendorId}'\n                    .replace('${' + 'vendorId' + '}', String(vendorId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'vendorId' is not null or undefined\n        if (vendorId === null || vendorId === undefined) {\n            throw new Error('Required parameter vendorId was null or undefined when calling getVendor.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<VendorResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all Contracts for a particular vendor.   Contracts are not supported in EnergyCAP Version 7, this API is for reading existing contracts only and may be removed in the future.\n     * \n     * @param vendorId The vendor identifier for which Contracts are being retrieved\n     */\n    public getVendorContractsWithHttpInfo(vendorId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<VendorContractResponse>>> {\n        const path = this.basePath + '/api/v3/vendor/${vendorId}/contract'\n                    .replace('${' + 'vendorId' + '}', String(vendorId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'vendorId' is not null or undefined\n        if (vendorId === null || vendorId === undefined) {\n            throw new Error('Required parameter vendorId was null or undefined when calling getVendorContracts.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<VendorContractResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves the most recent template from the specified vendor\n     * \n     * @param vendorId The vendor identifier to search by\n     */\n    public getVendorTemplateWithHttpInfo(vendorId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<TemplateVersion>> {\n        const path = this.basePath + '/api/v202206/vendor/${vendorId}/template'\n                    .replace('${' + 'vendorId' + '}', String(vendorId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'vendorId' is not null or undefined\n        if (vendorId === null || vendorId === undefined) {\n            throw new Error('Required parameter vendorId was null or undefined when calling getVendorTemplate.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<TemplateVersion>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all user defined fields / custom fields for a particular vendor\n     * \n     * @param vendorId The vendor identifier for which user defined field / custom field values are being retrieved\n     */\n    public getVendorUdfsWithHttpInfo(vendorId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<UDFFieldChild>>> {\n        const path = this.basePath + '/api/v3/vendor/${vendorId}/udf'\n                    .replace('${' + 'vendorId' + '}', String(vendorId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'vendorId' is not null or undefined\n        if (vendorId === null || vendorId === undefined) {\n            throw new Error('Required parameter vendorId was null or undefined when calling getVendorUdfs.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<UDFFieldChild>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves an array of vendors. The array of vendors can be filtered by a number of criteria. See the filter property for more details\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getVendorsWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<VendorResponse>>> {\n        const path = this.basePath + '/api/v3/vendor';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<VendorResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all user defined fields / custom fields for all vendors\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getVendorsUdfsWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<VendorUDFResponse>>> {\n        const path = this.basePath + '/api/v3/vendor/udf';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<VendorUDFResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Updates the template for the specified vendor\n     * \n     * @param vendorId The vendor to apply the template to\n     * @param body Definition of the lines to apply to the template. If vendorLines is empty, any existing template will be deleted\n     */\n    public putVendorTemplateWithHttpInfo(vendorId: number, body?: Array<TemplateVendorLineRequest>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<TemplateVersion>> {\n        const path = this.basePath + '/api/v202206/vendor/${vendorId}/template'\n                    .replace('${' + 'vendorId' + '}', String(vendorId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'vendorId' is not null or undefined\n        if (vendorId === null || vendorId === undefined) {\n            throw new Error('Required parameter vendorId was null or undefined when calling putVendorTemplate.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<TemplateVersion>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Enable or disable all accounts assigned to a vendor from audits\n     * \n     * @param vendorId The identifier for the vendor to act upon\n     * @param body \n     */\n    public setVendorAccountsAuditExclusionWithHttpInfo(vendorId: number, body?: VendorAuditEnable, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdatedOnlyResult>> {\n        const path = this.basePath + '/api/v202104/vendor/${vendorId}/auditEnabled'\n                    .replace('${' + 'vendorId' + '}', String(vendorId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'vendorId' is not null or undefined\n        if (vendorId === null || vendorId === undefined) {\n            throw new Error('Required parameter vendorId was null or undefined when calling setVendorAccountsAuditExclusion.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdatedOnlyResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { VendorDigestActualYearlyResponse } from '../model/vendorDigestActualYearlyResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class VendorDigestService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by vendor for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes commodity level break up.\n     * \n     * @param vendorId The vendor to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     */\n    public getVendorActualYearly(vendorId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<VendorDigestActualYearlyResponse> {\n        return this.getVendorActualYearlyWithHttpInfo(vendorId, numberOfYears, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<VendorDigestActualYearlyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Retrieves rolled up actual billing data by vendor for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes commodity level break up.\n     * \n     * @param vendorId The vendor to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     */\n    public getVendorActualYearlyWithHttpInfo(vendorId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<VendorDigestActualYearlyResponse>> {\n        const path = this.basePath + '/api/v3/vendor/${vendorId}/digest/actual/yearly'\n                    .replace('${' + 'vendorId' + '}', String(vendorId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'vendorId' is not null or undefined\n        if (vendorId === null || vendorId === undefined) {\n            throw new Error('Required parameter vendorId was null or undefined when calling getVendorActualYearly.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<VendorDigestActualYearlyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { WeatherImportResult } from '../model/weatherImportResult';\nimport { WeatherImportSettings } from '../model/weatherImportSettings';\nimport { WeatherStationResponse } from '../model/weatherStationResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class WeatherStationService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Get weather stations. Includes custom-created weather stations\n     * \n     */\n    public getWeatherStations(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<WeatherStationResponse>> {\n        return this.getWeatherStationsWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<WeatherStationResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Import mean daily temperature readings for weather stations which are connected to EnergyCAP weather services\n     * ### Other Remarks By default, this endpoint may be called without parameters to import weather for all \\&quot;used\\&quot; weather stations (at least one building is assigned to it) beginning from the current date minus 31 days.        By providing a begin date, API users may go further back in history to backfill missing weather data.   If a weather station has no readings at all, then the begin date will be set to 1899-12-31 so we can import history  However the begin date is ascertained, readings will be imported from that date through today&#39;s date, overwriting any existing readings or filling in any missing readings.  The API user may also provide a list of weather station codes. Even if the provided stations are not yet used, weather readings will be imported for them.\n     * @param body \n     */\n    public importWeatherData(body?: WeatherImportSettings, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<WeatherImportResult> {\n        return this.importWeatherDataWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<WeatherImportResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Get weather stations. Includes custom-created weather stations\n     * \n     */\n    public getWeatherStationsWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<WeatherStationResponse>>> {\n        const path = this.basePath + '/api/v3/weatherstation';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<WeatherStationResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Import mean daily temperature readings for weather stations which are connected to EnergyCAP weather services\n     * ### Other Remarks By default, this endpoint may be called without parameters to import weather for all \\&quot;used\\&quot; weather stations (at least one building is assigned to it) beginning from the current date minus 31 days.        By providing a begin date, API users may go further back in history to backfill missing weather data.   If a weather station has no readings at all, then the begin date will be set to 1899-12-31 so we can import history  However the begin date is ascertained, readings will be imported from that date through today&#39;s date, overwriting any existing readings or filling in any missing readings.  The API user may also provide a list of weather station codes. Even if the provided stations are not yet used, weather readings will be imported for them.\n     * @param body \n     */\n    public importWeatherDataWithHttpInfo(body?: WeatherImportSettings, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<WeatherImportResult>> {\n        const path = this.basePath + '/api/v3/weatherstation/import';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<WeatherImportResult>(RequestMethod.Post, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { BulkImportArcadiaCredentialRequest } from '../model/bulkImportArcadiaCredentialRequest';\nimport { BulkImportArcadiaCredentialsResponse } from '../model/bulkImportArcadiaCredentialsResponse';\nimport { WebCaptureCredentialDetailsResponse } from '../model/webCaptureCredentialDetailsResponse';\nimport { WebCaptureCredentialResponse } from '../model/webCaptureCredentialResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class WebCaptureCredentialService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Bulk import Arcadia credentials and their associated accounts\n     * \n     * @param body The list of Arcadia credentials to import\n     */\n    public bulkImportArcadiaCredentials(body?: Array<BulkImportArcadiaCredentialRequest>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BulkImportArcadiaCredentialsResponse> {\n        return this.bulkImportArcadiaCredentialsWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BulkImportArcadiaCredentialsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a WebCAPture Credential by ID\n     * \n     * @param webCaptureCredentialId The WEBCapture Credential identifier\n     */\n    public getWebCaptureCredential(webCaptureCredentialId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<WebCaptureCredentialDetailsResponse> {\n        return this.getWebCaptureCredentialWithHttpInfo(webCaptureCredentialId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<WebCaptureCredentialDetailsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get all WebCAPture Credentials\n     * \n     * @param filter \n     * @param orderBy \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getWebCaptureCredentials(filter?: string, orderBy?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<WebCaptureCredentialResponse>> {\n        return this.getWebCaptureCredentialsWithHttpInfo(filter, orderBy, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<WebCaptureCredentialResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Bulk import Arcadia credentials and their associated accounts\n     * \n     * @param body The list of Arcadia credentials to import\n     */\n    public bulkImportArcadiaCredentialsWithHttpInfo(body?: Array<BulkImportArcadiaCredentialRequest>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BulkImportArcadiaCredentialsResponse>> {\n        const path = this.basePath + '/api/v202603/webCaptureCredential/bulkImport/arcadia';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BulkImportArcadiaCredentialsResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Get a WebCAPture Credential by ID\n     * \n     * @param webCaptureCredentialId The WEBCapture Credential identifier\n     */\n    public getWebCaptureCredentialWithHttpInfo(webCaptureCredentialId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<WebCaptureCredentialDetailsResponse>> {\n        const path = this.basePath + '/api/v202603/webCaptureCredential/${webCaptureCredentialId}'\n                    .replace('${' + 'webCaptureCredentialId' + '}', String(webCaptureCredentialId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'webCaptureCredentialId' is not null or undefined\n        if (webCaptureCredentialId === null || webCaptureCredentialId === undefined) {\n            throw new Error('Required parameter webCaptureCredentialId was null or undefined when calling getWebCaptureCredential.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<WebCaptureCredentialDetailsResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get all WebCAPture Credentials\n     * \n     * @param filter \n     * @param orderBy \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getWebCaptureCredentialsWithHttpInfo(filter?: string, orderBy?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<WebCaptureCredentialResponse>>> {\n        const path = this.basePath + '/api/v202603/webCaptureCredential';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (orderBy !== undefined) {\n            queryParameters = queryParameters.set('orderBy', <any>orderBy);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<WebCaptureCredentialResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { WebhookCreateRequest } from '../model/webhookCreateRequest';\nimport { WebhookEditRequest } from '../model/webhookEditRequest';\nimport { WebhookEventTypeChild } from '../model/webhookEventTypeChild';\nimport { WebhookLogDetailsResponse } from '../model/webhookLogDetailsResponse';\nimport { WebhookLogResponse } from '../model/webhookLogResponse';\nimport { WebhookResponse } from '../model/webhookResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class WebhookService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Create a new webhook\n     * \n     * @param body \n     */\n    public createWebhook(body?: WebhookCreateRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<WebhookResponse> {\n        return this.createWebhookWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<WebhookResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete a webhook\n     * \n     * @param webhookId \n     */\n    public deleteWebhook(webhookId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteWebhookWithHttpInfo(webhookId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete webhook logs older than the number of days provided only if the number of logs per webhook is in excess of 100. 100 latest logs per webhook will always be maintained\n     * \n     * @param olderThanDays Defaults to 3\n     */\n    public deleteWebhookLogsOlderThan(olderThanDays?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteWebhookLogsOlderThanWithHttpInfo(olderThanDays, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit an existing webhook\n     * \n     * @param webhookId \n     * @param body \n     */\n    public editWebhook(webhookId: number, body?: WebhookEditRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<WebhookResponse> {\n        return this.editWebhookWithHttpInfo(webhookId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<WebhookResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a single webhook\n     * \n     * @param webhookId \n     */\n    public getWebhook(webhookId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<WebhookResponse> {\n        return this.getWebhookWithHttpInfo(webhookId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<WebhookResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get webhook event types\n     * \n     */\n    public getWebhookEventTypes(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<WebhookEventTypeChild>> {\n        return this.getWebhookEventTypesWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<WebhookEventTypeChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get details for a webhook log\n     * \n     * @param webhookId \n     * @param webhookLogId \n     */\n    public getWebhookLogDetails(webhookId: number, webhookLogId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<WebhookLogDetailsResponse> {\n        return this.getWebhookLogDetailsWithHttpInfo(webhookId, webhookLogId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<WebhookLogDetailsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a list of webhook event logs\n     * \n     * @param webhookId \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getWebhookLogs(webhookId: number, filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<WebhookLogResponse>> {\n        return this.getWebhookLogsWithHttpInfo(webhookId, filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<WebhookLogResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a list of all webhooks\n     * \n     * @param filter \n     */\n    public getWebhooks(filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<WebhookResponse>> {\n        return this.getWebhooksWithHttpInfo(filter, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<WebhookResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Create a new webhook\n     * \n     * @param body \n     */\n    public createWebhookWithHttpInfo(body?: WebhookCreateRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<WebhookResponse>> {\n        const path = this.basePath + '/api/v3/webhook';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<WebhookResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Delete a webhook\n     * \n     * @param webhookId \n     */\n    public deleteWebhookWithHttpInfo(webhookId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/webhook/${webhookId}'\n                    .replace('${' + 'webhookId' + '}', String(webhookId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'webhookId' is not null or undefined\n        if (webhookId === null || webhookId === undefined) {\n            throw new Error('Required parameter webhookId was null or undefined when calling deleteWebhook.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Delete webhook logs older than the number of days provided only if the number of logs per webhook is in excess of 100. 100 latest logs per webhook will always be maintained\n     * \n     * @param olderThanDays Defaults to 3\n     */\n    public deleteWebhookLogsOlderThanWithHttpInfo(olderThanDays?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202104/webhook/log';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (olderThanDays !== undefined) {\n            queryParameters = queryParameters.set('olderThanDays', <any>olderThanDays);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Edit an existing webhook\n     * \n     * @param webhookId \n     * @param body \n     */\n    public editWebhookWithHttpInfo(webhookId: number, body?: WebhookEditRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<WebhookResponse>> {\n        const path = this.basePath + '/api/v3/webhook/${webhookId}'\n                    .replace('${' + 'webhookId' + '}', String(webhookId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'webhookId' is not null or undefined\n        if (webhookId === null || webhookId === undefined) {\n            throw new Error('Required parameter webhookId was null or undefined when calling editWebhook.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<WebhookResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Get a single webhook\n     * \n     * @param webhookId \n     */\n    public getWebhookWithHttpInfo(webhookId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<WebhookResponse>> {\n        const path = this.basePath + '/api/v3/webhook/${webhookId}'\n                    .replace('${' + 'webhookId' + '}', String(webhookId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'webhookId' is not null or undefined\n        if (webhookId === null || webhookId === undefined) {\n            throw new Error('Required parameter webhookId was null or undefined when calling getWebhook.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<WebhookResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get webhook event types\n     * \n     */\n    public getWebhookEventTypesWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<WebhookEventTypeChild>>> {\n        const path = this.basePath + '/api/v3/webhook/eventType';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<WebhookEventTypeChild>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get details for a webhook log\n     * \n     * @param webhookId \n     * @param webhookLogId \n     */\n    public getWebhookLogDetailsWithHttpInfo(webhookId: number, webhookLogId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<WebhookLogDetailsResponse>> {\n        const path = this.basePath + '/api/v3/webhook/${webhookId}/log/${webhookLogId}/detail'\n                    .replace('${' + 'webhookId' + '}', String(webhookId))\n                    .replace('${' + 'webhookLogId' + '}', String(webhookLogId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'webhookId' is not null or undefined\n        if (webhookId === null || webhookId === undefined) {\n            throw new Error('Required parameter webhookId was null or undefined when calling getWebhookLogDetails.');\n        }\n        // verify required parameter 'webhookLogId' is not null or undefined\n        if (webhookLogId === null || webhookLogId === undefined) {\n            throw new Error('Required parameter webhookLogId was null or undefined when calling getWebhookLogDetails.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<WebhookLogDetailsResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a list of webhook event logs\n     * \n     * @param webhookId \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getWebhookLogsWithHttpInfo(webhookId: number, filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<WebhookLogResponse>>> {\n        const path = this.basePath + '/api/v3/webhook/${webhookId}/log'\n                    .replace('${' + 'webhookId' + '}', String(webhookId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'webhookId' is not null or undefined\n        if (webhookId === null || webhookId === undefined) {\n            throw new Error('Required parameter webhookId was null or undefined when calling getWebhookLogs.');\n        }\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<WebhookLogResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a list of all webhooks\n     * \n     * @param filter \n     */\n    public getWebhooksWithHttpInfo(filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<WebhookResponse>>> {\n        const path = this.basePath + '/api/v3/webhook';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<WebhookResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { ActionableBillCounts } from '../model/actionableBillCounts';\nimport { ActualVsBudgetResponse } from '../model/actualVsBudgetResponse';\nimport { AggregatedComparisonResponseGHGPerformanceComparison } from '../model/aggregatedComparisonResponseGHGPerformanceComparison';\nimport { AggregatedItemRankResponse } from '../model/aggregatedItemRankResponse';\nimport { AggregatedMonthlyCAPTrendResponse } from '../model/aggregatedMonthlyCAPTrendResponse';\nimport { AggregatedResponseGHGBuildingRank } from '../model/aggregatedResponseGHGBuildingRank';\nimport { AggregatedResponseItemRankWithUnitResponse } from '../model/aggregatedResponseItemRankWithUnitResponse';\nimport { BillsOverdueFromVendorResponse } from '../model/billsOverdueFromVendorResponse';\nimport { EnergyStarPlaceHierarchyResponse } from '../model/energyStarPlaceHierarchyResponse';\nimport { EsaIntervalDataResponse } from '../model/esaIntervalDataResponse';\nimport { EsaSentinelPredictionsResponse } from '../model/esaSentinelPredictionsResponse';\nimport { GHGCarbonFootprintResponse } from '../model/gHGCarbonFootprintResponse';\nimport { MapWidgetResponse } from '../model/mapWidgetResponse';\nimport { MeterCost } from '../model/meterCost';\nimport { MissingBillWidget } from '../model/missingBillWidget';\nimport { PeriodRangeComparisonDetailed } from '../model/periodRangeComparisonDetailed';\nimport { PlaceCost } from '../model/placeCost';\nimport { PlaceDigestActualAndCalendarizedMonthlyResponse } from '../model/placeDigestActualAndCalendarizedMonthlyResponse';\nimport { PlaceDigestEnergyUseIntensity } from '../model/placeDigestEnergyUseIntensity';\nimport { PlaceDigestGHGYearlyResponse } from '../model/placeDigestGHGYearlyResponse';\nimport { Readings } from '../model/readings';\nimport { RollingComparisonResponse } from '../model/rollingComparisonResponse';\nimport { TimeSeriesDataResponse } from '../model/timeSeriesDataResponse';\nimport { TrendDataResponse } from '../model/trendDataResponse';\nimport { WidgetResponse } from '../model/widgetResponse';\nimport { WidgetSavingsYearlyResponse } from '../model/widgetSavingsYearlyResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class WidgetService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Retrieves data for cost avoidance by commodity dashboard widget\n     * \n     * @param specificWidgetId Specific widget identifier to get the data for\n     * @param filter \n     */\n    public costAvoidanceByCommodity(specificWidgetId: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<WidgetSavingsYearlyResponse> {\n        return this.costAvoidanceByCommodityWithHttpInfo(specificWidgetId, filter, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<WidgetSavingsYearlyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * \n     * \n     * @param specificWidgetId \n     * @param filter \n     */\n    public executeSprocWidget(specificWidgetId: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<PeriodRangeComparisonDetailed> {\n        return this.executeSprocWidgetWithHttpInfo(specificWidgetId, filter, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<PeriodRangeComparisonDetailed>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Returns counts of bills Held from Export, bills Waiting for Export to AP, bills Waiting for Export to GL, bills which are Not Approved, bills with unresolved flags,  and bills created in the past seven days.\n     * \n     * @param specificWidgetId Identifier for a specific Bill Status widget on a dashboard\n     * @param filter Filter string which may add to or override saved filter values during this request\n     */\n    public getActionableBillCounts(specificWidgetId: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ActionableBillCounts> {\n        return this.getActionableBillCountsWithHttpInfo(specificWidgetId, filter, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ActionableBillCounts>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Gets the actual vs budget widget.\n     * \n     * @param specificWidgetId The specific widget id\n     * @param filter The widget filters\n     */\n    public getActualVsBudget(specificWidgetId: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ActualVsBudgetResponse> {\n        return this.getActualVsBudgetWithHttpInfo(specificWidgetId, filter, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ActualVsBudgetResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves data about bills that have not yet been received from vendors. NOTE: Does not support global dashboard filtering with Topmost Place, Place Group API filters.\n     * \n     * @param specificWidgetId Specific widget identifier to get the data for\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getBillsOverdueFromVendor(specificWidgetId: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BillsOverdueFromVendorResponse>> {\n        return this.getBillsOverdueFromVendorWithHttpInfo(specificWidgetId, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BillsOverdueFromVendorResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves the carbon footprint data for a specific widget\n     * \n     * @param specificWidgetId Specific widget identifier to get the data for\n     * @param filter \n     */\n    public getCarbonFootprint(specificWidgetId: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<PlaceDigestGHGYearlyResponse> {\n        return this.getCarbonFootprintWithHttpInfo(specificWidgetId, filter, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<PlaceDigestGHGYearlyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves yearly Carbon Emissions data that is split by year, then by Gas Type and one of the following group types: ( Scope, Scope Category, Commodity ). Also includes target data, if target comparisons are enabled and set.\n     * \n     * @param specificWidgetId Specific Widget identifier to get the data for\n     * @param filter \n     */\n    public getCarbonFootprintData(specificWidgetId: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<GHGCarbonFootprintResponse> {\n        return this.getCarbonFootprintDataWithHttpInfo(specificWidgetId, filter, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<GHGCarbonFootprintResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves data for commodity cost dashboard widget\n     * \n     * @param specificWidgetId Specific widget identifier to get the data for\n     * @param filter \n     */\n    public getCommodityCost(specificWidgetId: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<PlaceDigestActualAndCalendarizedMonthlyResponse> {\n        return this.getCommodityCostWithHttpInfo(specificWidgetId, filter, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<PlaceDigestActualAndCalendarizedMonthlyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Returns Cost Avoidance Savings Program-to-date. The user can set the topmost place and/or commodity filters.\n     * \n     * @param specificWidgetId Specific widget identifier to get the data for\n     * @param filter \n     */\n    public getCostAvoidanceProgramSavings(specificWidgetId: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<WidgetSavingsYearlyResponse> {\n        return this.getCostAvoidanceProgramSavingsWithHttpInfo(specificWidgetId, filter, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<WidgetSavingsYearlyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves a list of buildings for the Multiple ENERGY STAR Buildings widget. The widget is expecting zero, one, or many buildings, and alters its layout based on how many results it receives.  Validation: - The provided specific widget must exist - The provided specific widget must be an Multiple ENERGY STAR Buildings widget\n     * \n     * @param specificWidgetId Identifier for a specific ENERGY STAR widget on a dashboard\n     * @param numberOfYears Only used when a single building is returned. The number of years to go back from most recent score. Defaults to 2 years. If 0 is provided, will only include current score.\n     * @param filter Filter string which may add to or override saved filter values during this request\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getEnergyStarMultipleBuildings(specificWidgetId: number, numberOfYears?: number, filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<EnergyStarPlaceHierarchyResponse>> {\n        return this.getEnergyStarMultipleBuildingsWithHttpInfo(specificWidgetId, numberOfYears, filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<EnergyStarPlaceHierarchyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves ENERGY STAR place score history for a building  Validation: - The provided specific widget must exist - The provided specific widget must be an ENERGY STAR Single Building widget\n     * \n     * @param specificWidgetId Identifier for a specific Single ENERGY STAR Building widget on a dashboard\n     * @param numberOfYears The number of years to go back from most recent score. Defaults to 2 years. If 0 is provided, will only include current score.\n     */\n    public getEnergyStarSingleBuilding(specificWidgetId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EnergyStarPlaceHierarchyResponse> {\n        return this.getEnergyStarSingleBuildingWithHttpInfo(specificWidgetId, numberOfYears, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EnergyStarPlaceHierarchyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Returns data for the ESA demand interval data widget\n     * \n     * @param specificWidgetId Specific widget identifier\n     * @param filter Optional filters\n     */\n    public getEsaDemandIntervalDataWidget(specificWidgetId: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EsaIntervalDataResponse> {\n        return this.getEsaDemandIntervalDataWidgetWithHttpInfo(specificWidgetId, filter, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EsaIntervalDataResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Returns data for the ESA heatmap widget\n     * \n     * @param specificWidgetId Specific widget identifier\n     * @param filter Optional filters\n     */\n    public getEsaHeatmapWidget(specificWidgetId: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EsaIntervalDataResponse> {\n        return this.getEsaHeatmapWidgetWithHttpInfo(specificWidgetId, filter, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EsaIntervalDataResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Returns data for the esa interval data widget\n     * \n     * @param specificWidgetId Specific widget identifier\n     * @param filter Optional filters\n     */\n    public getEsaIntervalDataWidget(specificWidgetId: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EsaIntervalDataResponse> {\n        return this.getEsaIntervalDataWidgetWithHttpInfo(specificWidgetId, filter, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EsaIntervalDataResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieve Trend Insights (previously \\&quot;ESA Sentinel\\&quot;) readings and predictions for a Channel.\n     * \n     * @param specificWidgetId Specific widget identifier to get the data for\n     * @param filter \n     */\n    public getEsaSentinelWidget(specificWidgetId: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EsaSentinelPredictionsResponse> {\n        return this.getEsaSentinelWidgetWithHttpInfo(specificWidgetId, filter, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EsaSentinelPredictionsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves energy use intensity data for a specific widget.\n     * \n     * @param specificWidgetId Specific widget identifier to get the data for\n     * @param filter API filters\n     */\n    public getEuiChartWidgetData(specificWidgetId: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PlaceDigestEnergyUseIntensity>> {\n        return this.getEuiChartWidgetDataWithHttpInfo(specificWidgetId, filter, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PlaceDigestEnergyUseIntensity>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get building rank by GHG emissions or intensity.\n     * \n     * @param specificWidgetId The specific widget id\n     * @param filter The widget filters\n     */\n    public getGHGBuildingRank(specificWidgetId: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<AggregatedResponseGHGBuildingRank> {\n        return this.getGHGBuildingRankWithHttpInfo(specificWidgetId, filter, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<AggregatedResponseGHGBuildingRank>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Gets the greenhouse gas performance by commodity, scope or scope category.\n     * \n     * @param specificWidgetId The specific widget id\n     * @param filter The widget filters\n     */\n    public getGHGPerformance(specificWidgetId: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<AggregatedComparisonResponseGHGPerformanceComparison> {\n        return this.getGHGPerformanceWithHttpInfo(specificWidgetId, filter, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<AggregatedComparisonResponseGHGPerformanceComparison>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get ranking by GHG emissions.\n     * \n     * @param specificWidgetId The specific widget id\n     * @param filter The widget filters\n     */\n    public getGHGRanking(specificWidgetId: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<AggregatedResponseItemRankWithUnitResponse> {\n        return this.getGHGRankingWithHttpInfo(specificWidgetId, filter, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<AggregatedResponseItemRankWithUnitResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves interval data for a specific widget NOTE: Does not support global dashboard filtering with Topmost Place, Place Group API filters.\n     * \n     * @param specificWidgetId Specific widget identifier to get the data for\n     */\n    public getIntervalData(specificWidgetId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<Readings>> {\n        return this.getIntervalDataWithHttpInfo(specificWidgetId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<Readings>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Gets the bar rank and tree map widgets.\n     * \n     * @param specificWidgetId The specific widget id\n     * @param filter The widget filters\n     */\n    public getItemRank(specificWidgetId: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<AggregatedItemRankResponse> {\n        return this.getItemRankWithHttpInfo(specificWidgetId, filter, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<AggregatedItemRankResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves map data for a specific map widget NOTE: Does not support global dashboard filtering with Topmost Place, Place Group API filters.\n     * \n     * @param specificWidgetId Specific widget identifier to get the data for\n     * @param chartMonthsToExclude Optional, the number of months to exclude from intensity data, 0 includes all months including the current one. Defaults to 0.\n     * @param numMonths Optional, the number of months of intensity data to include, the end month is respective of chartMonthsToExclude. Defaults to 12.\n     */\n    public getMapWidget(specificWidgetId: number, chartMonthsToExclude?: number, numMonths?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<MapWidgetResponse> {\n        return this.getMapWidgetWithHttpInfo(specificWidgetId, chartMonthsToExclude, numMonths, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<MapWidgetResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Returns gaps in billing data for a date range specified by the  Bill Date Range filter.  A gap is defined as at least one day that falls within the account&#39;s service dates and  not included in any bill for that account meter. The Allowable Gap Days filter specifies the number of days that must be in the gap before it will be included in the results.\n     * \n     * @param specificWidgetId Specific widget identifier to get the data for\n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMissingBills(specificWidgetId: number, filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MissingBillWidget>> {\n        return this.getMissingBillsWithHttpInfo(specificWidgetId, filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MissingBillWidget>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Gets data for the Monthly Cost Trend widget.\n     * \n     * @param specificWidgetId Specific widget identifier to get the data for\n     * @param filter Filters to apply to the widget\n     */\n    public getMonthlyCostTrend(specificWidgetId: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<TimeSeriesDataResponse> {\n        return this.getMonthlyCostTrendWithHttpInfo(specificWidgetId, filter, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<TimeSeriesDataResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Returns data for the monthly trend widget\n     * \n     * @param specificWidgetId Specific widget identifier\n     * @param filter Optional filters\n     */\n    public getMonthlyTrend(specificWidgetId: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<TrendDataResponse> {\n        return this.getMonthlyTrendWithHttpInfo(specificWidgetId, filter, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<TrendDataResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Gets data for the Monthly Use Trend widget.\n     * \n     * @param specificWidgetId Specific widget identifier to get the data for\n     * @param filter Filters to apply to the widget\n     */\n    public getMonthlyUseTrend(specificWidgetId: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<TimeSeriesDataResponse> {\n        return this.getMonthlyUseTrendWithHttpInfo(specificWidgetId, filter, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<TimeSeriesDataResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves the most expensive building data for a specific widget\n     * \n     * @param specificWidgetId Specific widget identifier to get the data for\n     * @param filter \n     */\n    public getMostExpensiveBuildings(specificWidgetId: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PlaceCost>> {\n        return this.getMostExpensiveBuildingsWithHttpInfo(specificWidgetId, filter, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PlaceCost>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves the most expensive meters data for a specific widget\n     * \n     * @param specificWidgetId Specific widget identifier to get the data for\n     * @param filter \n     */\n    public getMostExpensiveMeters(specificWidgetId: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MeterCost>> {\n        return this.getMostExpensiveMetersWithHttpInfo(specificWidgetId, filter, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MeterCost>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves data for the Rolling Monthly Comparison Widget.\n     * \n     * @param specificWidgetId The specific widget id\n     * @param filter The widget filters\n     */\n    public getRollingComparison(specificWidgetId: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<RollingComparisonResponse> {\n        return this.getRollingComparisonWithHttpInfo(specificWidgetId, filter, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<RollingComparisonResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves an array of widgets.\n     * \n     */\n    public getWidgets(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<WidgetResponse>> {\n        return this.getWidgetsWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<WidgetResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Returns data for the monthly savings trend widget\n     * \n     * @param specificWidgetId Specific widget identifier\n     * @param filter Optional filters\n     */\n    public monthlyCAPTrend(specificWidgetId: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<AggregatedMonthlyCAPTrendResponse> {\n        return this.monthlyCAPTrendWithHttpInfo(specificWidgetId, filter, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<AggregatedMonthlyCAPTrendResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Retrieves data for cost avoidance by commodity dashboard widget\n     * \n     * @param specificWidgetId Specific widget identifier to get the data for\n     * @param filter \n     */\n    public costAvoidanceByCommodityWithHttpInfo(specificWidgetId: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<WidgetSavingsYearlyResponse>> {\n        const path = this.basePath + '/api/v202302/widget/costavoidancebycommodity/${specificWidgetId}'\n                    .replace('${' + 'specificWidgetId' + '}', String(specificWidgetId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificWidgetId' is not null or undefined\n        if (specificWidgetId === null || specificWidgetId === undefined) {\n            throw new Error('Required parameter specificWidgetId was null or undefined when calling costAvoidanceByCommodity.');\n        }\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<WidgetSavingsYearlyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * \n     * \n     * @param specificWidgetId \n     * @param filter \n     */\n    public executeSprocWidgetWithHttpInfo(specificWidgetId: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<PeriodRangeComparisonDetailed>> {\n        const path = this.basePath + '/api/v3/widget/exec/${specificWidgetId}'\n                    .replace('${' + 'specificWidgetId' + '}', String(specificWidgetId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificWidgetId' is not null or undefined\n        if (specificWidgetId === null || specificWidgetId === undefined) {\n            throw new Error('Required parameter specificWidgetId was null or undefined when calling executeSprocWidget.');\n        }\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<PeriodRangeComparisonDetailed>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Returns counts of bills Held from Export, bills Waiting for Export to AP, bills Waiting for Export to GL, bills which are Not Approved, bills with unresolved flags,  and bills created in the past seven days.\n     * \n     * @param specificWidgetId Identifier for a specific Bill Status widget on a dashboard\n     * @param filter Filter string which may add to or override saved filter values during this request\n     */\n    public getActionableBillCountsWithHttpInfo(specificWidgetId: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ActionableBillCounts>> {\n        const path = this.basePath + '/api/v3/widget/actionablebillcounts/${specificWidgetId}'\n                    .replace('${' + 'specificWidgetId' + '}', String(specificWidgetId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificWidgetId' is not null or undefined\n        if (specificWidgetId === null || specificWidgetId === undefined) {\n            throw new Error('Required parameter specificWidgetId was null or undefined when calling getActionableBillCounts.');\n        }\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ActionableBillCounts>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Gets the actual vs budget widget.\n     * \n     * @param specificWidgetId The specific widget id\n     * @param filter The widget filters\n     */\n    public getActualVsBudgetWithHttpInfo(specificWidgetId: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ActualVsBudgetResponse>> {\n        const path = this.basePath + '/api/v202311/widget/actualvsbudget/${specificWidgetId}'\n                    .replace('${' + 'specificWidgetId' + '}', String(specificWidgetId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificWidgetId' is not null or undefined\n        if (specificWidgetId === null || specificWidgetId === undefined) {\n            throw new Error('Required parameter specificWidgetId was null or undefined when calling getActualVsBudget.');\n        }\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ActualVsBudgetResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves data about bills that have not yet been received from vendors. NOTE: Does not support global dashboard filtering with Topmost Place, Place Group API filters.\n     * \n     * @param specificWidgetId Specific widget identifier to get the data for\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getBillsOverdueFromVendorWithHttpInfo(specificWidgetId: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BillsOverdueFromVendorResponse>>> {\n        const path = this.basePath + '/api/v3/widget/billsoverduefromvendor/${specificWidgetId}'\n                    .replace('${' + 'specificWidgetId' + '}', String(specificWidgetId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificWidgetId' is not null or undefined\n        if (specificWidgetId === null || specificWidgetId === undefined) {\n            throw new Error('Required parameter specificWidgetId was null or undefined when calling getBillsOverdueFromVendor.');\n        }\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BillsOverdueFromVendorResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves the carbon footprint data for a specific widget\n     * \n     * @param specificWidgetId Specific widget identifier to get the data for\n     * @param filter \n     */\n    public getCarbonFootprintWithHttpInfo(specificWidgetId: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<PlaceDigestGHGYearlyResponse>> {\n        const path = this.basePath + '/api/v3/widget/carbonfootprint/${specificWidgetId}'\n                    .replace('${' + 'specificWidgetId' + '}', String(specificWidgetId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificWidgetId' is not null or undefined\n        if (specificWidgetId === null || specificWidgetId === undefined) {\n            throw new Error('Required parameter specificWidgetId was null or undefined when calling getCarbonFootprint.');\n        }\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<PlaceDigestGHGYearlyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves yearly Carbon Emissions data that is split by year, then by Gas Type and one of the following group types: ( Scope, Scope Category, Commodity ). Also includes target data, if target comparisons are enabled and set.\n     * \n     * @param specificWidgetId Specific Widget identifier to get the data for\n     * @param filter \n     */\n    public getCarbonFootprintDataWithHttpInfo(specificWidgetId: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<GHGCarbonFootprintResponse>> {\n        const path = this.basePath + '/api/v202211/widget/carbonfootprint/${specificWidgetId}'\n                    .replace('${' + 'specificWidgetId' + '}', String(specificWidgetId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificWidgetId' is not null or undefined\n        if (specificWidgetId === null || specificWidgetId === undefined) {\n            throw new Error('Required parameter specificWidgetId was null or undefined when calling getCarbonFootprintData.');\n        }\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<GHGCarbonFootprintResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves data for commodity cost dashboard widget\n     * \n     * @param specificWidgetId Specific widget identifier to get the data for\n     * @param filter \n     */\n    public getCommodityCostWithHttpInfo(specificWidgetId: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<PlaceDigestActualAndCalendarizedMonthlyResponse>> {\n        const path = this.basePath + '/api/v3/widget/commoditycost/${specificWidgetId}'\n                    .replace('${' + 'specificWidgetId' + '}', String(specificWidgetId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificWidgetId' is not null or undefined\n        if (specificWidgetId === null || specificWidgetId === undefined) {\n            throw new Error('Required parameter specificWidgetId was null or undefined when calling getCommodityCost.');\n        }\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<PlaceDigestActualAndCalendarizedMonthlyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Returns Cost Avoidance Savings Program-to-date. The user can set the topmost place and/or commodity filters.\n     * \n     * @param specificWidgetId Specific widget identifier to get the data for\n     * @param filter \n     */\n    public getCostAvoidanceProgramSavingsWithHttpInfo(specificWidgetId: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<WidgetSavingsYearlyResponse>> {\n        const path = this.basePath + '/api/v202302/widget/programsavings/${specificWidgetId}'\n                    .replace('${' + 'specificWidgetId' + '}', String(specificWidgetId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificWidgetId' is not null or undefined\n        if (specificWidgetId === null || specificWidgetId === undefined) {\n            throw new Error('Required parameter specificWidgetId was null or undefined when calling getCostAvoidanceProgramSavings.');\n        }\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<WidgetSavingsYearlyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves a list of buildings for the Multiple ENERGY STAR Buildings widget. The widget is expecting zero, one, or many buildings, and alters its layout based on how many results it receives.  Validation: - The provided specific widget must exist - The provided specific widget must be an Multiple ENERGY STAR Buildings widget\n     * \n     * @param specificWidgetId Identifier for a specific ENERGY STAR widget on a dashboard\n     * @param numberOfYears Only used when a single building is returned. The number of years to go back from most recent score. Defaults to 2 years. If 0 is provided, will only include current score.\n     * @param filter Filter string which may add to or override saved filter values during this request\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getEnergyStarMultipleBuildingsWithHttpInfo(specificWidgetId: number, numberOfYears?: number, filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<EnergyStarPlaceHierarchyResponse>>> {\n        const path = this.basePath + '/api/v3/widget/multipleenergystarbuildings/${specificWidgetId}'\n                    .replace('${' + 'specificWidgetId' + '}', String(specificWidgetId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificWidgetId' is not null or undefined\n        if (specificWidgetId === null || specificWidgetId === undefined) {\n            throw new Error('Required parameter specificWidgetId was null or undefined when calling getEnergyStarMultipleBuildings.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<EnergyStarPlaceHierarchyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves ENERGY STAR place score history for a building  Validation: - The provided specific widget must exist - The provided specific widget must be an ENERGY STAR Single Building widget\n     * \n     * @param specificWidgetId Identifier for a specific Single ENERGY STAR Building widget on a dashboard\n     * @param numberOfYears The number of years to go back from most recent score. Defaults to 2 years. If 0 is provided, will only include current score.\n     */\n    public getEnergyStarSingleBuildingWithHttpInfo(specificWidgetId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EnergyStarPlaceHierarchyResponse>> {\n        const path = this.basePath + '/api/v3/widget/singleenergystarbuilding/${specificWidgetId}'\n                    .replace('${' + 'specificWidgetId' + '}', String(specificWidgetId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificWidgetId' is not null or undefined\n        if (specificWidgetId === null || specificWidgetId === undefined) {\n            throw new Error('Required parameter specificWidgetId was null or undefined when calling getEnergyStarSingleBuilding.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EnergyStarPlaceHierarchyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Returns data for the ESA demand interval data widget\n     * \n     * @param specificWidgetId Specific widget identifier\n     * @param filter Optional filters\n     */\n    public getEsaDemandIntervalDataWidgetWithHttpInfo(specificWidgetId: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EsaIntervalDataResponse>> {\n        const path = this.basePath + '/api/V202502/widget/esademandintervaldata/${specificWidgetId}'\n                    .replace('${' + 'specificWidgetId' + '}', String(specificWidgetId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificWidgetId' is not null or undefined\n        if (specificWidgetId === null || specificWidgetId === undefined) {\n            throw new Error('Required parameter specificWidgetId was null or undefined when calling getEsaDemandIntervalDataWidget.');\n        }\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EsaIntervalDataResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Returns data for the ESA heatmap widget\n     * \n     * @param specificWidgetId Specific widget identifier\n     * @param filter Optional filters\n     */\n    public getEsaHeatmapWidgetWithHttpInfo(specificWidgetId: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EsaIntervalDataResponse>> {\n        const path = this.basePath + '/api/V202509/widget/esaheatmap/${specificWidgetId}'\n                    .replace('${' + 'specificWidgetId' + '}', String(specificWidgetId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificWidgetId' is not null or undefined\n        if (specificWidgetId === null || specificWidgetId === undefined) {\n            throw new Error('Required parameter specificWidgetId was null or undefined when calling getEsaHeatmapWidget.');\n        }\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EsaIntervalDataResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Returns data for the esa interval data widget\n     * \n     * @param specificWidgetId Specific widget identifier\n     * @param filter Optional filters\n     */\n    public getEsaIntervalDataWidgetWithHttpInfo(specificWidgetId: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EsaIntervalDataResponse>> {\n        const path = this.basePath + '/api/v202411/widget/esaintervaldata/${specificWidgetId}'\n                    .replace('${' + 'specificWidgetId' + '}', String(specificWidgetId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificWidgetId' is not null or undefined\n        if (specificWidgetId === null || specificWidgetId === undefined) {\n            throw new Error('Required parameter specificWidgetId was null or undefined when calling getEsaIntervalDataWidget.');\n        }\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EsaIntervalDataResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieve Trend Insights (previously \\&quot;ESA Sentinel\\&quot;) readings and predictions for a Channel.\n     * \n     * @param specificWidgetId Specific widget identifier to get the data for\n     * @param filter \n     */\n    public getEsaSentinelWidgetWithHttpInfo(specificWidgetId: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EsaSentinelPredictionsResponse>> {\n        const path = this.basePath + '/api/v202501/widget/trendinsights/${specificWidgetId}'\n                    .replace('${' + 'specificWidgetId' + '}', String(specificWidgetId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificWidgetId' is not null or undefined\n        if (specificWidgetId === null || specificWidgetId === undefined) {\n            throw new Error('Required parameter specificWidgetId was null or undefined when calling getEsaSentinelWidget.');\n        }\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EsaSentinelPredictionsResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves energy use intensity data for a specific widget.\n     * \n     * @param specificWidgetId Specific widget identifier to get the data for\n     * @param filter API filters\n     */\n    public getEuiChartWidgetDataWithHttpInfo(specificWidgetId: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PlaceDigestEnergyUseIntensity>>> {\n        const path = this.basePath + '/api/v3/widget/eui/${specificWidgetId}'\n                    .replace('${' + 'specificWidgetId' + '}', String(specificWidgetId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificWidgetId' is not null or undefined\n        if (specificWidgetId === null || specificWidgetId === undefined) {\n            throw new Error('Required parameter specificWidgetId was null or undefined when calling getEuiChartWidgetData.');\n        }\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PlaceDigestEnergyUseIntensity>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get building rank by GHG emissions or intensity.\n     * \n     * @param specificWidgetId The specific widget id\n     * @param filter The widget filters\n     */\n    public getGHGBuildingRankWithHttpInfo(specificWidgetId: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<AggregatedResponseGHGBuildingRank>> {\n        const path = this.basePath + '/api/v202212/widget/ghgbuildingrank/${specificWidgetId}'\n                    .replace('${' + 'specificWidgetId' + '}', String(specificWidgetId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificWidgetId' is not null or undefined\n        if (specificWidgetId === null || specificWidgetId === undefined) {\n            throw new Error('Required parameter specificWidgetId was null or undefined when calling getGHGBuildingRank.');\n        }\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<AggregatedResponseGHGBuildingRank>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Gets the greenhouse gas performance by commodity, scope or scope category.\n     * \n     * @param specificWidgetId The specific widget id\n     * @param filter The widget filters\n     */\n    public getGHGPerformanceWithHttpInfo(specificWidgetId: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<AggregatedComparisonResponseGHGPerformanceComparison>> {\n        const path = this.basePath + '/api/v202212/widget/ghgperformance/${specificWidgetId}'\n                    .replace('${' + 'specificWidgetId' + '}', String(specificWidgetId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificWidgetId' is not null or undefined\n        if (specificWidgetId === null || specificWidgetId === undefined) {\n            throw new Error('Required parameter specificWidgetId was null or undefined when calling getGHGPerformance.');\n        }\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<AggregatedComparisonResponseGHGPerformanceComparison>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get ranking by GHG emissions.\n     * \n     * @param specificWidgetId The specific widget id\n     * @param filter The widget filters\n     */\n    public getGHGRankingWithHttpInfo(specificWidgetId: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<AggregatedResponseItemRankWithUnitResponse>> {\n        const path = this.basePath + '/api/v202212/widget/ghgscopecategoryrank/${specificWidgetId}'\n                    .replace('${' + 'specificWidgetId' + '}', String(specificWidgetId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificWidgetId' is not null or undefined\n        if (specificWidgetId === null || specificWidgetId === undefined) {\n            throw new Error('Required parameter specificWidgetId was null or undefined when calling getGHGRanking.');\n        }\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<AggregatedResponseItemRankWithUnitResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves interval data for a specific widget NOTE: Does not support global dashboard filtering with Topmost Place, Place Group API filters.\n     * \n     * @param specificWidgetId Specific widget identifier to get the data for\n     */\n    public getIntervalDataWithHttpInfo(specificWidgetId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<Readings>>> {\n        const path = this.basePath + '/api/v3/widget/intervaldata/${specificWidgetId}'\n                    .replace('${' + 'specificWidgetId' + '}', String(specificWidgetId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificWidgetId' is not null or undefined\n        if (specificWidgetId === null || specificWidgetId === undefined) {\n            throw new Error('Required parameter specificWidgetId was null or undefined when calling getIntervalData.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<Readings>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Gets the bar rank and tree map widgets.\n     * \n     * @param specificWidgetId The specific widget id\n     * @param filter The widget filters\n     */\n    public getItemRankWithHttpInfo(specificWidgetId: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<AggregatedItemRankResponse>> {\n        const path = this.basePath + '/api/v202302/widget/itemrank/${specificWidgetId}'\n                    .replace('${' + 'specificWidgetId' + '}', String(specificWidgetId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificWidgetId' is not null or undefined\n        if (specificWidgetId === null || specificWidgetId === undefined) {\n            throw new Error('Required parameter specificWidgetId was null or undefined when calling getItemRank.');\n        }\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<AggregatedItemRankResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves map data for a specific map widget NOTE: Does not support global dashboard filtering with Topmost Place, Place Group API filters.\n     * \n     * @param specificWidgetId Specific widget identifier to get the data for\n     * @param chartMonthsToExclude Optional, the number of months to exclude from intensity data, 0 includes all months including the current one. Defaults to 0.\n     * @param numMonths Optional, the number of months of intensity data to include, the end month is respective of chartMonthsToExclude. Defaults to 12.\n     */\n    public getMapWidgetWithHttpInfo(specificWidgetId: number, chartMonthsToExclude?: number, numMonths?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<MapWidgetResponse>> {\n        const path = this.basePath + '/api/v202209/widget/map/${specificWidgetId}'\n                    .replace('${' + 'specificWidgetId' + '}', String(specificWidgetId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificWidgetId' is not null or undefined\n        if (specificWidgetId === null || specificWidgetId === undefined) {\n            throw new Error('Required parameter specificWidgetId was null or undefined when calling getMapWidget.');\n        }\n        if (chartMonthsToExclude !== undefined) {\n            queryParameters = queryParameters.set('chartMonthsToExclude', <any>chartMonthsToExclude);\n        }\n\n        if (numMonths !== undefined) {\n            queryParameters = queryParameters.set('numMonths', <any>numMonths);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<MapWidgetResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Returns gaps in billing data for a date range specified by the  Bill Date Range filter.  A gap is defined as at least one day that falls within the account&#39;s service dates and  not included in any bill for that account meter. The Allowable Gap Days filter specifies the number of days that must be in the gap before it will be included in the results.\n     * \n     * @param specificWidgetId Specific widget identifier to get the data for\n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMissingBillsWithHttpInfo(specificWidgetId: number, filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MissingBillWidget>>> {\n        const path = this.basePath + '/api/v3/widget/missingbills/${specificWidgetId}'\n                    .replace('${' + 'specificWidgetId' + '}', String(specificWidgetId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificWidgetId' is not null or undefined\n        if (specificWidgetId === null || specificWidgetId === undefined) {\n            throw new Error('Required parameter specificWidgetId was null or undefined when calling getMissingBills.');\n        }\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MissingBillWidget>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Gets data for the Monthly Cost Trend widget.\n     * \n     * @param specificWidgetId Specific widget identifier to get the data for\n     * @param filter Filters to apply to the widget\n     */\n    public getMonthlyCostTrendWithHttpInfo(specificWidgetId: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<TimeSeriesDataResponse>> {\n        const path = this.basePath + '/api/v202302/widget/monthlycosttrend/${specificWidgetId}'\n                    .replace('${' + 'specificWidgetId' + '}', String(specificWidgetId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificWidgetId' is not null or undefined\n        if (specificWidgetId === null || specificWidgetId === undefined) {\n            throw new Error('Required parameter specificWidgetId was null or undefined when calling getMonthlyCostTrend.');\n        }\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<TimeSeriesDataResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Returns data for the monthly trend widget\n     * \n     * @param specificWidgetId Specific widget identifier\n     * @param filter Optional filters\n     */\n    public getMonthlyTrendWithHttpInfo(specificWidgetId: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<TrendDataResponse>> {\n        const path = this.basePath + '/api/v202302/widget/monthlytrend/${specificWidgetId}'\n                    .replace('${' + 'specificWidgetId' + '}', String(specificWidgetId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificWidgetId' is not null or undefined\n        if (specificWidgetId === null || specificWidgetId === undefined) {\n            throw new Error('Required parameter specificWidgetId was null or undefined when calling getMonthlyTrend.');\n        }\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<TrendDataResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Gets data for the Monthly Use Trend widget.\n     * \n     * @param specificWidgetId Specific widget identifier to get the data for\n     * @param filter Filters to apply to the widget\n     */\n    public getMonthlyUseTrendWithHttpInfo(specificWidgetId: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<TimeSeriesDataResponse>> {\n        const path = this.basePath + '/api/v202302/widget/monthlyusetrend/${specificWidgetId}'\n                    .replace('${' + 'specificWidgetId' + '}', String(specificWidgetId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificWidgetId' is not null or undefined\n        if (specificWidgetId === null || specificWidgetId === undefined) {\n            throw new Error('Required parameter specificWidgetId was null or undefined when calling getMonthlyUseTrend.');\n        }\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<TimeSeriesDataResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves the most expensive building data for a specific widget\n     * \n     * @param specificWidgetId Specific widget identifier to get the data for\n     * @param filter \n     */\n    public getMostExpensiveBuildingsWithHttpInfo(specificWidgetId: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PlaceCost>>> {\n        const path = this.basePath + '/api/v3/widget/mostexpensivebuildings/${specificWidgetId}'\n                    .replace('${' + 'specificWidgetId' + '}', String(specificWidgetId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificWidgetId' is not null or undefined\n        if (specificWidgetId === null || specificWidgetId === undefined) {\n            throw new Error('Required parameter specificWidgetId was null or undefined when calling getMostExpensiveBuildings.');\n        }\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PlaceCost>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves the most expensive meters data for a specific widget\n     * \n     * @param specificWidgetId Specific widget identifier to get the data for\n     * @param filter \n     */\n    public getMostExpensiveMetersWithHttpInfo(specificWidgetId: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MeterCost>>> {\n        const path = this.basePath + '/api/v3/widget/mostexpensivemeters/${specificWidgetId}'\n                    .replace('${' + 'specificWidgetId' + '}', String(specificWidgetId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificWidgetId' is not null or undefined\n        if (specificWidgetId === null || specificWidgetId === undefined) {\n            throw new Error('Required parameter specificWidgetId was null or undefined when calling getMostExpensiveMeters.');\n        }\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MeterCost>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves data for the Rolling Monthly Comparison Widget.\n     * \n     * @param specificWidgetId The specific widget id\n     * @param filter The widget filters\n     */\n    public getRollingComparisonWithHttpInfo(specificWidgetId: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<RollingComparisonResponse>> {\n        const path = this.basePath + '/api/v202301/widget/rollingmonthlycomparison/${specificWidgetId}'\n                    .replace('${' + 'specificWidgetId' + '}', String(specificWidgetId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificWidgetId' is not null or undefined\n        if (specificWidgetId === null || specificWidgetId === undefined) {\n            throw new Error('Required parameter specificWidgetId was null or undefined when calling getRollingComparison.');\n        }\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<RollingComparisonResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves an array of widgets.\n     * \n     */\n    public getWidgetsWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<WidgetResponse>>> {\n        const path = this.basePath + '/api/v3/widget';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<WidgetResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Returns data for the monthly savings trend widget\n     * \n     * @param specificWidgetId Specific widget identifier\n     * @param filter Optional filters\n     */\n    public monthlyCAPTrendWithHttpInfo(specificWidgetId: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<AggregatedMonthlyCAPTrendResponse>> {\n        const path = this.basePath + '/api/v202302/widget/monthlysavingstrend/${specificWidgetId}'\n                    .replace('${' + 'specificWidgetId' + '}', String(specificWidgetId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificWidgetId' is not null or undefined\n        if (specificWidgetId === null || specificWidgetId === undefined) {\n            throw new Error('Required parameter specificWidgetId was null or undefined when calling monthlyCAPTrend.');\n        }\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<AggregatedMonthlyCAPTrendResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { ApprovalWorkflowSettings } from '../model/approvalWorkflowSettings';\nimport { BatchWorkflowSettings } from '../model/batchWorkflowSettings';\nimport { BillImportWorkflowSettings } from '../model/billImportWorkflowSettings';\nimport { ChargebackWorkflowSettings } from '../model/chargebackWorkflowSettings';\nimport { ExportWorkflowSettings } from '../model/exportWorkflowSettings';\nimport { WorkflowSettingsRequest } from '../model/workflowSettingsRequest';\nimport { WorkflowSettingsResponse } from '../model/workflowSettingsResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class WorkflowService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Update bill workflow settings\n     * \n     * @param body All workflow settings\n     */\n    public editWorkflow(body?: WorkflowSettingsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<WorkflowSettingsResponse> {\n        return this.editWorkflowWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<WorkflowSettingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get approval workflow settings\n     * \n     */\n    public getApprovalWorkflow(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ApprovalWorkflowSettings> {\n        return this.getApprovalWorkflowWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ApprovalWorkflowSettings>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get batch workflow settings\n     * \n     */\n    public getBatchWorkflow(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BatchWorkflowSettings> {\n        return this.getBatchWorkflowWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BatchWorkflowSettings>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get bill import workflow settings\n     * \n     */\n    public getBillImportWorkflowSettings(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BillImportWorkflowSettings> {\n        return this.getBillImportWorkflowSettingsWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BillImportWorkflowSettings>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get chargeback workflow settings\n     * \n     */\n    public getChargebackWorkflowSettings(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ChargebackWorkflowSettings> {\n        return this.getChargebackWorkflowSettingsWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ChargebackWorkflowSettings>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get export workflow settings\n     * \n     * @param exportMode The export mode to get settings for, can be &#39;AP&#39;, &#39;GL&#39; or &#39;Payment&#39;\n     */\n    public getExportWorkflow(exportMode?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ExportWorkflowSettings> {\n        return this.getExportWorkflowWithHttpInfo(exportMode, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ExportWorkflowSettings>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get bill workflow settings\n     * \n     */\n    public getWorkflow(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<WorkflowSettingsResponse> {\n        return this.getWorkflowWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<WorkflowSettingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Update bill workflow settings\n     * \n     * @param body All workflow settings\n     */\n    public editWorkflowWithHttpInfo(body?: WorkflowSettingsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<WorkflowSettingsResponse>> {\n        const path = this.basePath + '/api/v202410/workflow';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<WorkflowSettingsResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Get approval workflow settings\n     * \n     */\n    public getApprovalWorkflowWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ApprovalWorkflowSettings>> {\n        const path = this.basePath + '/api/v3/workflow/approval';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ApprovalWorkflowSettings>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get batch workflow settings\n     * \n     */\n    public getBatchWorkflowWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BatchWorkflowSettings>> {\n        const path = this.basePath + '/api/v3/workflow/batch';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BatchWorkflowSettings>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get bill import workflow settings\n     * \n     */\n    public getBillImportWorkflowSettingsWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BillImportWorkflowSettings>> {\n        const path = this.basePath + '/api/v3/workflow/billImport';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BillImportWorkflowSettings>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get chargeback workflow settings\n     * \n     */\n    public getChargebackWorkflowSettingsWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ChargebackWorkflowSettings>> {\n        const path = this.basePath + '/api/v3/workflow/chargeback';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ChargebackWorkflowSettings>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get export workflow settings\n     * \n     * @param exportMode The export mode to get settings for, can be &#39;AP&#39;, &#39;GL&#39; or &#39;Payment&#39;\n     */\n    public getExportWorkflowWithHttpInfo(exportMode?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ExportWorkflowSettings>> {\n        const path = this.basePath + '/api/v3/workflow/export';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (exportMode !== undefined) {\n            queryParameters = queryParameters.set('exportMode', <any>exportMode);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ExportWorkflowSettings>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get bill workflow settings\n     * \n     */\n    public getWorkflowWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<WorkflowSettingsResponse>> {\n        const path = this.basePath + '/api/v3/workflow';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<WorkflowSettingsResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { AccountDigestActualMonthlyResponse } from '../model/accountDigestActualMonthlyResponse';\nimport { AccountDigestActualYearlyResponse } from '../model/accountDigestActualYearlyResponse';\nimport { AccountResponse } from '../model/accountResponse';\nimport { AccountUDFResponse } from '../model/accountUDFResponse';\nimport { AddressLookup } from '../model/addressLookup';\nimport { BatchResponse } from '../model/batchResponse';\nimport { BillAccountChargeSplitSettingsResponse } from '../model/billAccountChargeSplitSettingsResponse';\nimport { BillAccountMeterResponse } from '../model/billAccountMeterResponse';\nimport { BillAccountMeterStatisticsResponse } from '../model/billAccountMeterStatisticsResponse';\nimport { BillResponse } from '../model/billResponse';\nimport { BillsOverdueFromVendorResponse } from '../model/billsOverdueFromVendorResponse';\nimport { BodylineResponse } from '../model/bodylineResponse';\nimport { ChargebackTaskResponse } from '../model/chargebackTaskResponse';\nimport { CollectionResponse } from '../model/collectionResponse';\nimport { CostAvoidanceTask } from '../model/costAvoidanceTask';\nimport { CostCenterDigestActualMonthlyResponse } from '../model/costCenterDigestActualMonthlyResponse';\nimport { CostCenterDigestActualYearlyResponse } from '../model/costCenterDigestActualYearlyResponse';\nimport { CostCenterResponse } from '../model/costCenterResponse';\nimport { DataPointResponse } from '../model/dataPointResponse';\nimport { DistributionVersionResponse } from '../model/distributionVersionResponse';\nimport { DynamicListRequest } from '../model/dynamicListRequest';\nimport { EmissionRecordResponse } from '../model/emissionRecordResponse';\nimport { EmissionSourceMultiFactorResponse } from '../model/emissionSourceMultiFactorResponse';\nimport { EmissionSourceResponse } from '../model/emissionSourceResponse';\nimport { EnergyStarPlaceHierarchyResponse } from '../model/energyStarPlaceHierarchyResponse';\nimport { EnergyStarTaskResponse } from '../model/energyStarTaskResponse';\nimport { EsaChannelResponse } from '../model/esaChannelResponse';\nimport { EsaPlaceResponse } from '../model/esaPlaceResponse';\nimport { EsaReadingResponse } from '../model/esaReadingResponse';\nimport { EsaReadingSummarizedResponse } from '../model/esaReadingSummarizedResponse';\nimport { FilterDataResponse } from '../model/filterDataResponse';\nimport { FlagWidget } from '../model/flagWidget';\nimport { GHGFactorResponse } from '../model/gHGFactorResponse';\nimport { GeneralLedgerResponse } from '../model/generalLedgerResponse';\nimport { ListResponse } from '../model/listResponse';\nimport { MeterDigestActualAndCalendarizedMonthlyResponse } from '../model/meterDigestActualAndCalendarizedMonthlyResponse';\nimport { MeterDigestActualAndCalendarizedYearlyResponse } from '../model/meterDigestActualAndCalendarizedYearlyResponse';\nimport { MeterDigestNormalizedMonthlyResponse } from '../model/meterDigestNormalizedMonthlyResponse';\nimport { MeterDigestNormalizedYearlyResponse } from '../model/meterDigestNormalizedYearlyResponse';\nimport { MeterDigestSavingsMonthlyResponse } from '../model/meterDigestSavingsMonthlyResponse';\nimport { MeterDigestSavingsYearlyResponse } from '../model/meterDigestSavingsYearlyResponse';\nimport { MeterResponse } from '../model/meterResponse';\nimport { MeterSearchRequest } from '../model/meterSearchRequest';\nimport { MeterUDFResponse } from '../model/meterUDFResponse';\nimport { MissingBillWidget } from '../model/missingBillWidget';\nimport { MoveCreateMeter } from '../model/moveCreateMeter';\nimport { NotificationResponse } from '../model/notificationResponse';\nimport { PlaceDigestActualAndCalendarizedMonthlyResponse } from '../model/placeDigestActualAndCalendarizedMonthlyResponse';\nimport { PlaceDigestActualAndCalendarizedYearlyResponse } from '../model/placeDigestActualAndCalendarizedYearlyResponse';\nimport { PlaceDigestNormalizedMonthlyResponse } from '../model/placeDigestNormalizedMonthlyResponse';\nimport { PlaceDigestNormalizedYearlyResponse } from '../model/placeDigestNormalizedYearlyResponse';\nimport { PlaceDigestSavingsMonthlyResponse } from '../model/placeDigestSavingsMonthlyResponse';\nimport { PlaceDigestSavingsYearlyResponse } from '../model/placeDigestSavingsYearlyResponse';\nimport { PlaceResponse } from '../model/placeResponse';\nimport { PlaceUDFResponse } from '../model/placeUDFResponse';\nimport { RateResponse } from '../model/rateResponse';\nimport { TaskResponse } from '../model/taskResponse';\nimport { TemplateResponse } from '../model/templateResponse';\nimport { UserGroupResponse } from '../model/userGroupResponse';\nimport { UserResponse } from '../model/userResponse';\nimport { VendorResponse } from '../model/vendorResponse';\nimport { VendorUDFResponse } from '../model/vendorUDFResponse';\nimport { WebCaptureCredentialResponse } from '../model/webCaptureCredentialResponse';\nimport { WebhookLogResponse } from '../model/webhookLogResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPaginatedPaginatedspanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Get the account bills list\n     * \n     * @param accountId The account identifier to retrieve bills list for\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public accountList(accountId: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ListResponse> {\n        return this.accountListWithHttpInfo(accountId, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ListResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Returns a tabular flag summary by Account for all the accounts under the given cost center\n     * \n     * @param costCenterId Parent cost center identifier\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public billFlagSummaryByAccount(costCenterId: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<FlagWidget> {\n        return this.billFlagSummaryByAccountWithHttpInfo(costCenterId, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<FlagWidget>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Returns a tabular flag summary by Meter for all the meters under the given place\n     * \n     * @param placeId Parent place identifier\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public billFlagSummaryByMeter(placeId: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<FlagWidget> {\n        return this.billFlagSummaryByMeterWithHttpInfo(placeId, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<FlagWidget>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get the collection records list\n     * \n     * @param collectionId The collection identifier to retrieve records list for\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public collectionRecordList(collectionId: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ListResponse> {\n        return this.collectionRecordListWithHttpInfo(collectionId, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ListResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get the emission source records list\n     * \n     * @param emissionSourceId The emission source identifier to retrieve records list for\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public emissionSourceRecordList(emissionSourceId: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ListResponse> {\n        return this.emissionSourceRecordListWithHttpInfo(emissionSourceId, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ListResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by account for a given number of years- Result includes cost, use, unit cost on a monthly basis. It also includes commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 24 months\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getAccountActualMonthlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<AccountDigestActualMonthlyResponse>> {\n        return this.getAccountActualMonthlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<AccountDigestActualMonthlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by account for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getAccountActualYearlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<AccountDigestActualYearlyResponse>> {\n        return this.getAccountActualYearlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<AccountDigestActualYearlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all accounts\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getAccounts(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<AccountResponse>> {\n        return this.getAccountsWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<AccountResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all user defined fields / custom fields for all accounts\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getAccountsUdfs(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<AccountUDFResponse>> {\n        return this.getAccountsUdfsWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<AccountUDFResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all bill&#39;s bodylines\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getAllBillsBodylines(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BodylineResponse>> {\n        return this.getAllBillsBodylinesWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BodylineResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * \n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getBatches(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BatchResponse>> {\n        return this.getBatchesWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BatchResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all settings used to split account charges on bill import Note: When filtering by vendor, only settings that apply to all vendor accounts (account null) will be returned\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getBillAccountChargeSplitSettings(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BillAccountChargeSplitSettingsResponse> {\n        return this.getBillAccountChargeSplitSettingsWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BillAccountChargeSplitSettingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves bill account meter records\n     * \n     * @param filter Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getBillAccountMetersActual(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BillAccountMeterResponse>> {\n        return this.getBillAccountMetersActualWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BillAccountMeterResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves bill account meter calendarized records\n     * \n     * @param filter Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getBillAccountMetersCalendarized(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BillAccountMeterResponse>> {\n        return this.getBillAccountMetersCalendarizedWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BillAccountMeterResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves bill account meter normalized records\n     * \n     * @param filter Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getBillAccountMetersNormalized(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BillAccountMeterResponse>> {\n        return this.getBillAccountMetersNormalizedWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BillAccountMeterResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves bill account meter statistics records\n     * \n     * @param filter Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getBillAccountMetersStatistics(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BillAccountMeterStatisticsResponse>> {\n        return this.getBillAccountMetersStatisticsWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BillAccountMeterStatisticsResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a list of bill split versions which match the provided filter conditions\n     * \n     * @param filter API filter string containing conditions\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getBillSplitVersions(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<DistributionVersionResponse>> {\n        return this.getBillSplitVersionsWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<DistributionVersionResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves an array of bills. The array of bills can be filtered by a number of criteria. See the filter property for more details\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getBills(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BillResponse>> {\n        return this.getBillsWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BillResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves data about bills that have not yet been received from vendors. NOTE: Does not support global dashboard filtering with Topmost Place, Place Group API filters.\n     * \n     * @param specificWidgetId Specific widget identifier to get the data for\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getBillsOverdueFromVendor(specificWidgetId: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BillsOverdueFromVendorResponse>> {\n        return this.getBillsOverdueFromVendorWithHttpInfo(specificWidgetId, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BillsOverdueFromVendorResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a list of calculated bill versions which match the provided filter conditions\n     * \n     * @param filter API filter string containing conditions\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getCalculatedBillVersions(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<DistributionVersionResponse>> {\n        return this.getCalculatedBillVersionsWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<DistributionVersionResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get all chargeback tasks with details\n     * \n     * @param filter Filters to apply\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getChargebackTasks(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<ChargebackTaskResponse>> {\n        return this.getChargebackTasksWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<ChargebackTaskResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all the collections\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getCollections(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<CollectionResponse>> {\n        return this.getCollectionsWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<CollectionResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by costCenter for a given number of years- Result includes cost, use, unit cost on a monthly basis. It also includes commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 24 months\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getCostCenterActualMonthlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<CostCenterDigestActualMonthlyResponse>> {\n        return this.getCostCenterActualMonthlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<CostCenterDigestActualMonthlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by costCenter for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes commodity level break up.\n     * \n     * @param costCenterId The costCenter to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getCostCenterActualYearly(costCenterId: number, numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CostCenterDigestActualYearlyResponse> {\n        return this.getCostCenterActualYearlyWithHttpInfo(costCenterId, numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CostCenterDigestActualYearlyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by costCenter for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getCostCenterActualYearlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<CostCenterDigestActualYearlyResponse>> {\n        return this.getCostCenterActualYearlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<CostCenterDigestActualYearlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all the cost centers\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getCostCenters(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<CostCenterResponse>> {\n        return this.getCostCentersWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<CostCenterResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all data points\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getDataPoints(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<DataPointResponse>> {\n        return this.getDataPointsWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<DataPointResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get the definition and data for a list type\n     * \n     * @param listTypeId The list type for which the definition and data are to be retrieved\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     * @param body DTO containing the list of initial filters to apply and a flag indicating whether to reset the current columns. Only one list of the specified list type exists, so columns and filters are shared for every dynamic list of the list type. Filters provided will be saved to the database.\n     */\n    public getDynamicListWithData(listTypeId: number, pageSize?: number, pageNumber?: number, body?: DynamicListRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ListResponse> {\n        return this.getDynamicListWithDataWithHttpInfo(listTypeId, pageSize, pageNumber, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ListResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieve a list of emission records\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getEmissionRecords(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<EmissionRecordResponse>> {\n        return this.getEmissionRecordsWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<EmissionRecordResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all the emissions sources\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getEmissionSources(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<EmissionSourceResponse>> {\n        return this.getEmissionSourcesWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<EmissionSourceResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all emission sources\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getEmissionSourcesWithMultiFactors(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<EmissionSourceMultiFactorResponse>> {\n        return this.getEmissionSourcesWithMultiFactorsWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<EmissionSourceMultiFactorResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves a list of buildings for the Multiple ENERGY STAR Buildings widget. The widget is expecting zero, one, or many buildings, and alters its layout based on how many results it receives.  Validation: - The provided specific widget must exist - The provided specific widget must be an Multiple ENERGY STAR Buildings widget\n     * \n     * @param specificWidgetId Identifier for a specific ENERGY STAR widget on a dashboard\n     * @param numberOfYears Only used when a single building is returned. The number of years to go back from most recent score. Defaults to 2 years. If 0 is provided, will only include current score.\n     * @param filter Filter string which may add to or override saved filter values during this request\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getEnergyStarMultipleBuildings(specificWidgetId: number, numberOfYears?: number, filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<EnergyStarPlaceHierarchyResponse>> {\n        return this.getEnergyStarMultipleBuildingsWithHttpInfo(specificWidgetId, numberOfYears, filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<EnergyStarPlaceHierarchyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a list of ENERGY STAR tasks with their details\n     * \n     * @param filter Filters to apply\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getEnergyStarTasks(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<EnergyStarTaskResponse>> {\n        return this.getEnergyStarTasksWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<EnergyStarTaskResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves a filtered list of ESA Channels.\n     * \n     * @param filter \n     * @param orderBy \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getEsaChannels(filter?: string, orderBy?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<EsaChannelResponse>> {\n        return this.getEsaChannelsWithHttpInfo(filter, orderBy, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<EsaChannelResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all ESA places\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getEsaPlaces(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<EsaPlaceResponse>> {\n        return this.getEsaPlacesWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<EsaPlaceResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all raw and processed ESA readings\n     * \n     * @param filter \n     * @param orderBy \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getEsaReadings(filter?: string, orderBy?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<EsaReadingResponse>> {\n        return this.getEsaReadingsWithHttpInfo(filter, orderBy, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<EsaReadingResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all summarized ESA readings\n     * \n     * @param filter \n     * @param orderBy \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getEsaSummarizedReadings(filter?: string, orderBy?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<EsaReadingSummarizedResponse>> {\n        return this.getEsaSummarizedReadingsWithHttpInfo(filter, orderBy, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<EsaReadingSummarizedResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves list of values for data filter\n     * \n     * @param dataFieldId \n     * @param search \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getFilterData(dataFieldId: number, search?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<FilterDataResponse>> {\n        return this.getFilterDataWithHttpInfo(dataFieldId, search, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<FilterDataResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all the ghg factors\n     * \n     * @param filter The api filters&gt;\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getGHGFactors(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<GHGFactorResponse>> {\n        return this.getGHGFactorsWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<GHGFactorResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all General Ledgers\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getGeneralLedgers(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<GeneralLedgerResponse>> {\n        return this.getGeneralLedgersWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<GeneralLedgerResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get the definition and data for a list. For a list to be returned you must have created the list or have access to it.\n     * \n     * @param listId The list for which the definition and data are to be retrieved\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getListWithData(listId: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ListResponse> {\n        return this.getListWithDataWithHttpInfo(listId, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ListResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by meter for a given range of months- Result includes cost, use, unit cost on a monthly basis.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for actual and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMeterActualMonthlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MeterDigestActualAndCalendarizedMonthlyResponse>> {\n        return this.getMeterActualMonthlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MeterDigestActualAndCalendarizedMonthlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up billing data by meter for a given range of years- Result includes cost, use, unit cost on an yearly basis.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMeterActualYearlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MeterDigestActualAndCalendarizedYearlyResponse>> {\n        return this.getMeterActualYearlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MeterDigestActualAndCalendarizedYearlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up calendarized billing data by meter for a given range of months- Result includes cost, use, unit cost on a monthly basis.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for actual and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMeterCalendarizedMonthlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MeterDigestActualAndCalendarizedMonthlyResponse>> {\n        return this.getMeterCalendarizedMonthlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MeterDigestActualAndCalendarizedMonthlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up calendarized data by meter for a given range of years- Result includes cost, use, unit cost on an yearly basis.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMeterCalendarizedYearlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MeterDigestActualAndCalendarizedYearlyResponse>> {\n        return this.getMeterCalendarizedYearlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MeterDigestActualAndCalendarizedYearlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up normalized billing data by meter for a given range of months- Result includes cost, use, unit cost on a monthly basis.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for actual and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMeterNormalizedMonthlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MeterDigestNormalizedMonthlyResponse>> {\n        return this.getMeterNormalizedMonthlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MeterDigestNormalizedMonthlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up normalized data by meter for a given range of years- Result includes cost, use, unit cost on an yearly basis.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMeterNormalizedYearlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MeterDigestNormalizedYearlyResponse>> {\n        return this.getMeterNormalizedYearlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MeterDigestNormalizedYearlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up savings billing data by meter for a given number of years- Result includes cost and use savings on a monthly basis.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years/24 months\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMeterSavingsMonthlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MeterDigestSavingsMonthlyResponse>> {\n        return this.getMeterSavingsMonthlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MeterDigestSavingsMonthlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves savings data by meter for a given number of years.\n     * \n     * @param numberOfYears Number of years of data to return including the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMeterSavingsYearlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MeterDigestSavingsYearlyResponse>> {\n        return this.getMeterSavingsYearlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MeterDigestSavingsYearlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all meters\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMeters(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MeterResponse>> {\n        return this.getMetersWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MeterResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all user defined fields / custom fields for all meters\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMetersUdfs(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MeterUDFResponse>> {\n        return this.getMetersUdfsWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MeterUDFResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Returns gaps in billing data for a date range specified by the  Bill Date Range filter.  A gap is defined as at least one day that falls within the account&#39;s service dates and  not included in any bill for that account meter. The Allowable Gap Days filter specifies the number of days that must be in the gap before it will be included in the results.\n     * \n     * @param specificWidgetId Specific widget identifier to get the data for\n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMissingBills(specificWidgetId: number, filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MissingBillWidget>> {\n        return this.getMissingBillsWithHttpInfo(specificWidgetId, filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MissingBillWidget>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get all notifications for the current user\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getNotifications(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<NotificationResponse>> {\n        return this.getNotificationsWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<NotificationResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by building/organization for a given number of years- Result includes cost, use, unit cost on a monthly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for actual and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlaceActualMonthlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PlaceDigestActualAndCalendarizedMonthlyResponse>> {\n        return this.getPlaceActualMonthlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PlaceDigestActualAndCalendarizedMonthlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by building/organization for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlaceActualYearlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PlaceDigestActualAndCalendarizedYearlyResponse>> {\n        return this.getPlaceActualYearlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PlaceDigestActualAndCalendarizedYearlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up calendarized billing data by building/organization for a given number of years- Result includes cost, use, unit cost on a monthly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for calendarized and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlaceCalendarizedMonthlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PlaceDigestActualAndCalendarizedMonthlyResponse>> {\n        return this.getPlaceCalendarizedMonthlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PlaceDigestActualAndCalendarizedMonthlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up calendarized billing data by building/organization for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlaceCalendarizedYearlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PlaceDigestActualAndCalendarizedYearlyResponse>> {\n        return this.getPlaceCalendarizedYearlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PlaceDigestActualAndCalendarizedYearlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up normalized billing data by building/organization for a given number of years- Result includes use on a monthly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for normalized and savings, and 24 or 26 (if 13 accounting periods) for normalized and normalized)\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlaceNomalizedMonthlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PlaceDigestNormalizedMonthlyResponse>> {\n        return this.getPlaceNomalizedMonthlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PlaceDigestNormalizedMonthlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up normalized billing data by building/organization for a given number of years- Result include use on an yearly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlaceNormalizedYearlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PlaceDigestNormalizedYearlyResponse>> {\n        return this.getPlaceNormalizedYearlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PlaceDigestNormalizedYearlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up savings data by building/organization for a given number of years- Result includes cost and use savings on a monthly basis.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years/24 months\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlaceSavingsMonthlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PlaceDigestSavingsMonthlyResponse>> {\n        return this.getPlaceSavingsMonthlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PlaceDigestSavingsMonthlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up savings billing data by building/organization for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes a commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlaceSavingsYearlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PlaceDigestSavingsYearlyResponse>> {\n        return this.getPlaceSavingsYearlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PlaceDigestSavingsYearlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all places\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlaces(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PlaceResponse>> {\n        return this.getPlacesWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PlaceResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all user defined fields / custom fields for all places\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlacesUdfs(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PlaceUDFResponse>> {\n        return this.getPlacesUdfsWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PlaceUDFResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a list of all rate schedules matching the provided filters\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getRates(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<RateResponse>> {\n        return this.getRatesWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<RateResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a list of cost avoidance tasks NOTE: does not include cost avoidance tasks created from prior versions of the software\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getSavingsTasks(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<CostAvoidanceTask>> {\n        return this.getSavingsTasksWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<CostAvoidanceTask>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves a list of tasks\n     * \n     * @param taskTypeCode Task type code. Acceptable values are:      AuditGroup,      CostAvoidance,     Report,     Chargeback,     SetupSheet,     UnitsOfMeasure,     Accrual,     BillImport,      EnergyStar,     BillExport,     ReadingImport,     SummarizeReading,     BillUnexport,     V7CostAvoidance,     V7Accrual,     Budget     CostUnitUpdate,     RecordImportPfl,     EsaReadingImpPfl,     RecordImport  *This combines record import setup sheet tasks and record import with a profile tasks,     EsaReadingImport  *This combines Esa readings import setup sheet tasks and Esa Reading import with a profile tasks\n     * @param filter Filters to apply\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getTasks(taskTypeCode?: string, filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<TaskResponse>> {\n        return this.getTasksWithHttpInfo(taskTypeCode, filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<TaskResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all templates\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getTemplates(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<TemplateResponse>> {\n        return this.getTemplatesWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<TemplateResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get all unplaced meters\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getUnplacedMeters(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MeterResponse>> {\n        return this.getUnplacedMetersWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MeterResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Gets a list of user groups\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getUserGroups(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<UserGroupResponse>> {\n        return this.getUserGroupsWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<UserGroupResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Gets a paginated list of users. Requires View permission for Users &amp; Roles.  If this permission is not available, restricted set of properties are returned.\n     * \n     * @param filter \n     * @param orderBy \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getUsersPaginated(filter?: string, orderBy?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<UserResponse>> {\n        return this.getUsersPaginatedWithHttpInfo(filter, orderBy, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<UserResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves an array of vendors. The array of vendors can be filtered by a number of criteria. See the filter property for more details\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getVendors(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<VendorResponse>> {\n        return this.getVendorsWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<VendorResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all user defined fields / custom fields for all vendors\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getVendorsUdfs(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<VendorUDFResponse>> {\n        return this.getVendorsUdfsWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<VendorUDFResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get all WebCAPture Credentials\n     * \n     * @param filter \n     * @param orderBy \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getWebCaptureCredentials(filter?: string, orderBy?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<WebCaptureCredentialResponse>> {\n        return this.getWebCaptureCredentialsWithHttpInfo(filter, orderBy, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<WebCaptureCredentialResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a list of webhook event logs\n     * \n     * @param webhookId \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getWebhookLogs(webhookId: number, filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<WebhookLogResponse>> {\n        return this.getWebhookLogsWithHttpInfo(webhookId, filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<WebhookLogResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get the meter bills list\n     * \n     * @param meterId The meter identifier to retrieve bills list for\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public meterBillList(meterId: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ListResponse> {\n        return this.meterBillListWithHttpInfo(meterId, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ListResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Search utility platform meters\n     * \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     * @param body The meter search criteria\n     */\n    public searchUtilityPlatformMeters(pageSize?: number, pageNumber?: number, body?: MeterSearchRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MoveCreateMeter>> {\n        return this.searchUtilityPlatformMetersWithHttpInfo(pageSize, pageNumber, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MoveCreateMeter>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Search service addresses\n     * \n     * @param address The address fragment to search for\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public searchUtilityPlatformServiceAddresses(address?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<AddressLookup>> {\n        return this.searchUtilityPlatformServiceAddressesWithHttpInfo(address, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<AddressLookup>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Get the account bills list\n     * \n     * @param accountId The account identifier to retrieve bills list for\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public accountListWithHttpInfo(accountId: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ListResponse>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/list/bill'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling accountList.');\n        }\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ListResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Returns a tabular flag summary by Account for all the accounts under the given cost center\n     * \n     * @param costCenterId Parent cost center identifier\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public billFlagSummaryByAccountWithHttpInfo(costCenterId: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<FlagWidget>> {\n        const path = this.basePath + '/api/v3/flag/costcenter/${costCenterId}/billFlagSummary'\n                    .replace('${' + 'costCenterId' + '}', String(costCenterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'costCenterId' is not null or undefined\n        if (costCenterId === null || costCenterId === undefined) {\n            throw new Error('Required parameter costCenterId was null or undefined when calling billFlagSummaryByAccount.');\n        }\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<FlagWidget>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Returns a tabular flag summary by Meter for all the meters under the given place\n     * \n     * @param placeId Parent place identifier\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public billFlagSummaryByMeterWithHttpInfo(placeId: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<FlagWidget>> {\n        const path = this.basePath + '/api/v3/flag/place/${placeId}/billFlagSummary'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling billFlagSummaryByMeter.');\n        }\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<FlagWidget>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get the collection records list\n     * \n     * @param collectionId The collection identifier to retrieve records list for\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public collectionRecordListWithHttpInfo(collectionId: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ListResponse>> {\n        const path = this.basePath + '/api/v3/collection/${collectionId}/list/record'\n                    .replace('${' + 'collectionId' + '}', String(collectionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'collectionId' is not null or undefined\n        if (collectionId === null || collectionId === undefined) {\n            throw new Error('Required parameter collectionId was null or undefined when calling collectionRecordList.');\n        }\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ListResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get the emission source records list\n     * \n     * @param emissionSourceId The emission source identifier to retrieve records list for\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public emissionSourceRecordListWithHttpInfo(emissionSourceId: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ListResponse>> {\n        const path = this.basePath + '/api/v3/emissionSource/${emissionSourceId}/list/record'\n                    .replace('${' + 'emissionSourceId' + '}', String(emissionSourceId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'emissionSourceId' is not null or undefined\n        if (emissionSourceId === null || emissionSourceId === undefined) {\n            throw new Error('Required parameter emissionSourceId was null or undefined when calling emissionSourceRecordList.');\n        }\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ListResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by account for a given number of years- Result includes cost, use, unit cost on a monthly basis. It also includes commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 24 months\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getAccountActualMonthlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<AccountDigestActualMonthlyResponse>>> {\n        const path = this.basePath + '/api/v3/account/digest/actual/monthly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<AccountDigestActualMonthlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by account for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getAccountActualYearlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<AccountDigestActualYearlyResponse>>> {\n        const path = this.basePath + '/api/v3/account/digest/actual/yearly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<AccountDigestActualYearlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all accounts\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getAccountsWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<AccountResponse>>> {\n        const path = this.basePath + '/api/v3/account';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<AccountResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all user defined fields / custom fields for all accounts\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getAccountsUdfsWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<AccountUDFResponse>>> {\n        const path = this.basePath + '/api/v3/account/udf';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<AccountUDFResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all bill&#39;s bodylines\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getAllBillsBodylinesWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BodylineResponse>>> {\n        const path = this.basePath + '/api/v3/bill/bodyline';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BodylineResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * \n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getBatchesWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BatchResponse>>> {\n        const path = this.basePath + '/api/v3/batch';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BatchResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all settings used to split account charges on bill import Note: When filtering by vendor, only settings that apply to all vendor accounts (account null) will be returned\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getBillAccountChargeSplitSettingsWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BillAccountChargeSplitSettingsResponse>> {\n        const path = this.basePath + '/api/v202407/billAccountChargeSplit';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BillAccountChargeSplitSettingsResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves bill account meter records\n     * \n     * @param filter Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getBillAccountMetersActualWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BillAccountMeterResponse>>> {\n        const path = this.basePath + '/api/v3/bill/billaccountmeter/actual';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BillAccountMeterResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves bill account meter calendarized records\n     * \n     * @param filter Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getBillAccountMetersCalendarizedWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BillAccountMeterResponse>>> {\n        const path = this.basePath + '/api/v3/bill/billaccountmeter/calendarized';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BillAccountMeterResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves bill account meter normalized records\n     * \n     * @param filter Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getBillAccountMetersNormalizedWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BillAccountMeterResponse>>> {\n        const path = this.basePath + '/api/v3/bill/billaccountmeter/normalized';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BillAccountMeterResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves bill account meter statistics records\n     * \n     * @param filter Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getBillAccountMetersStatisticsWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BillAccountMeterStatisticsResponse>>> {\n        const path = this.basePath + '/api/v3/bill/billaccountmeter/statistics';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BillAccountMeterStatisticsResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a list of bill split versions which match the provided filter conditions\n     * \n     * @param filter API filter string containing conditions\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getBillSplitVersionsWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<DistributionVersionResponse>>> {\n        const path = this.basePath + '/api/v3/billSplit';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<DistributionVersionResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves an array of bills. The array of bills can be filtered by a number of criteria. See the filter property for more details\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getBillsWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BillResponse>>> {\n        const path = this.basePath + '/api/v3/bill';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BillResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves data about bills that have not yet been received from vendors. NOTE: Does not support global dashboard filtering with Topmost Place, Place Group API filters.\n     * \n     * @param specificWidgetId Specific widget identifier to get the data for\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getBillsOverdueFromVendorWithHttpInfo(specificWidgetId: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BillsOverdueFromVendorResponse>>> {\n        const path = this.basePath + '/api/v3/widget/billsoverduefromvendor/${specificWidgetId}'\n                    .replace('${' + 'specificWidgetId' + '}', String(specificWidgetId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificWidgetId' is not null or undefined\n        if (specificWidgetId === null || specificWidgetId === undefined) {\n            throw new Error('Required parameter specificWidgetId was null or undefined when calling getBillsOverdueFromVendor.');\n        }\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BillsOverdueFromVendorResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a list of calculated bill versions which match the provided filter conditions\n     * \n     * @param filter API filter string containing conditions\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getCalculatedBillVersionsWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<DistributionVersionResponse>>> {\n        const path = this.basePath + '/api/v3/calculatedBill';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<DistributionVersionResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get all chargeback tasks with details\n     * \n     * @param filter Filters to apply\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getChargebackTasksWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<ChargebackTaskResponse>>> {\n        const path = this.basePath + '/api/v3/chargebackTask';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<ChargebackTaskResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all the collections\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getCollectionsWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<CollectionResponse>>> {\n        const path = this.basePath + '/api/v202306/collection';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<CollectionResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by costCenter for a given number of years- Result includes cost, use, unit cost on a monthly basis. It also includes commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 24 months\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getCostCenterActualMonthlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<CostCenterDigestActualMonthlyResponse>>> {\n        const path = this.basePath + '/api/v3/costCenter/digest/actual/monthly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<CostCenterDigestActualMonthlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by costCenter for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes commodity level break up.\n     * \n     * @param costCenterId The costCenter to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getCostCenterActualYearlyWithHttpInfo(costCenterId: number, numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CostCenterDigestActualYearlyResponse>> {\n        const path = this.basePath + '/api/v3/costCenter/${costCenterId}/digest/actual/yearly'\n                    .replace('${' + 'costCenterId' + '}', String(costCenterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'costCenterId' is not null or undefined\n        if (costCenterId === null || costCenterId === undefined) {\n            throw new Error('Required parameter costCenterId was null or undefined when calling getCostCenterActualYearly.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CostCenterDigestActualYearlyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by costCenter for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getCostCenterActualYearlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<CostCenterDigestActualYearlyResponse>>> {\n        const path = this.basePath + '/api/v3/costCenter/digest/actual/yearly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<CostCenterDigestActualYearlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all the cost centers\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getCostCentersWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<CostCenterResponse>>> {\n        const path = this.basePath + '/api/v3/costcenter';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<CostCenterResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all data points\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getDataPointsWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<DataPointResponse>>> {\n        const path = this.basePath + '/api/v202406/datapoint';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<DataPointResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get the definition and data for a list type\n     * \n     * @param listTypeId The list type for which the definition and data are to be retrieved\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     * @param body DTO containing the list of initial filters to apply and a flag indicating whether to reset the current columns. Only one list of the specified list type exists, so columns and filters are shared for every dynamic list of the list type. Filters provided will be saved to the database.\n     */\n    public getDynamicListWithDataWithHttpInfo(listTypeId: number, pageSize?: number, pageNumber?: number, body?: DynamicListRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ListResponse>> {\n        const path = this.basePath + '/api/v3/dynamiclist/${listTypeId}'\n                    .replace('${' + 'listTypeId' + '}', String(listTypeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'listTypeId' is not null or undefined\n        if (listTypeId === null || listTypeId === undefined) {\n            throw new Error('Required parameter listTypeId was null or undefined when calling getDynamicListWithData.');\n        }\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ListResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Retrieve a list of emission records\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getEmissionRecordsWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<EmissionRecordResponse>>> {\n        const path = this.basePath + '/api/v202306/emissionRecord';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<EmissionRecordResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all the emissions sources\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getEmissionSourcesWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<EmissionSourceResponse>>> {\n        const path = this.basePath + '/api/v202306/emissionSource';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<EmissionSourceResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all emission sources\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getEmissionSourcesWithMultiFactorsWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<EmissionSourceMultiFactorResponse>>> {\n        const path = this.basePath + '/api/v202411/emissionSource';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<EmissionSourceMultiFactorResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves a list of buildings for the Multiple ENERGY STAR Buildings widget. The widget is expecting zero, one, or many buildings, and alters its layout based on how many results it receives.  Validation: - The provided specific widget must exist - The provided specific widget must be an Multiple ENERGY STAR Buildings widget\n     * \n     * @param specificWidgetId Identifier for a specific ENERGY STAR widget on a dashboard\n     * @param numberOfYears Only used when a single building is returned. The number of years to go back from most recent score. Defaults to 2 years. If 0 is provided, will only include current score.\n     * @param filter Filter string which may add to or override saved filter values during this request\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getEnergyStarMultipleBuildingsWithHttpInfo(specificWidgetId: number, numberOfYears?: number, filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<EnergyStarPlaceHierarchyResponse>>> {\n        const path = this.basePath + '/api/v3/widget/multipleenergystarbuildings/${specificWidgetId}'\n                    .replace('${' + 'specificWidgetId' + '}', String(specificWidgetId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificWidgetId' is not null or undefined\n        if (specificWidgetId === null || specificWidgetId === undefined) {\n            throw new Error('Required parameter specificWidgetId was null or undefined when calling getEnergyStarMultipleBuildings.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<EnergyStarPlaceHierarchyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a list of ENERGY STAR tasks with their details\n     * \n     * @param filter Filters to apply\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getEnergyStarTasksWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<EnergyStarTaskResponse>>> {\n        const path = this.basePath + '/api/v3/energyStar/task';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<EnergyStarTaskResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves a filtered list of ESA Channels.\n     * \n     * @param filter \n     * @param orderBy \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getEsaChannelsWithHttpInfo(filter?: string, orderBy?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<EsaChannelResponse>>> {\n        const path = this.basePath + '/api/v202406/esachannel';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (orderBy !== undefined) {\n            queryParameters = queryParameters.set('orderBy', <any>orderBy);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<EsaChannelResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all ESA places\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getEsaPlacesWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<EsaPlaceResponse>>> {\n        const path = this.basePath + '/api/v202406/esaplace';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<EsaPlaceResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all raw and processed ESA readings\n     * \n     * @param filter \n     * @param orderBy \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getEsaReadingsWithHttpInfo(filter?: string, orderBy?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<EsaReadingResponse>>> {\n        const path = this.basePath + '/api/v202407/esaReading';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (orderBy !== undefined) {\n            queryParameters = queryParameters.set('orderBy', <any>orderBy);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<EsaReadingResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all summarized ESA readings\n     * \n     * @param filter \n     * @param orderBy \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getEsaSummarizedReadingsWithHttpInfo(filter?: string, orderBy?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<EsaReadingSummarizedResponse>>> {\n        const path = this.basePath + '/api/v202410/esaReading/summarized';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (orderBy !== undefined) {\n            queryParameters = queryParameters.set('orderBy', <any>orderBy);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<EsaReadingSummarizedResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves list of values for data filter\n     * \n     * @param dataFieldId \n     * @param search \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getFilterDataWithHttpInfo(dataFieldId: number, search?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<FilterDataResponse>>> {\n        const path = this.basePath + '/api/v3/filterData/${dataFieldId}'\n                    .replace('${' + 'dataFieldId' + '}', String(dataFieldId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'dataFieldId' is not null or undefined\n        if (dataFieldId === null || dataFieldId === undefined) {\n            throw new Error('Required parameter dataFieldId was null or undefined when calling getFilterData.');\n        }\n        if (search !== undefined) {\n            queryParameters = queryParameters.set('search', <any>search);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<FilterDataResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all the ghg factors\n     * \n     * @param filter The api filters&gt;\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getGHGFactorsWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<GHGFactorResponse>>> {\n        const path = this.basePath + '/api/v202307/ghg/factor';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<GHGFactorResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all General Ledgers\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getGeneralLedgersWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<GeneralLedgerResponse>>> {\n        const path = this.basePath + '/api/v3/generalledger';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<GeneralLedgerResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get the definition and data for a list. For a list to be returned you must have created the list or have access to it.\n     * \n     * @param listId The list for which the definition and data are to be retrieved\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getListWithDataWithHttpInfo(listId: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ListResponse>> {\n        const path = this.basePath + '/api/v3/list/${listId}/data'\n                    .replace('${' + 'listId' + '}', String(listId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'listId' is not null or undefined\n        if (listId === null || listId === undefined) {\n            throw new Error('Required parameter listId was null or undefined when calling getListWithData.');\n        }\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ListResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by meter for a given range of months- Result includes cost, use, unit cost on a monthly basis.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for actual and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMeterActualMonthlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MeterDigestActualAndCalendarizedMonthlyResponse>>> {\n        const path = this.basePath + '/api/v3/meter/digest/actual/monthly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MeterDigestActualAndCalendarizedMonthlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up billing data by meter for a given range of years- Result includes cost, use, unit cost on an yearly basis.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMeterActualYearlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MeterDigestActualAndCalendarizedYearlyResponse>>> {\n        const path = this.basePath + '/api/v3/meter/digest/actual/yearly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MeterDigestActualAndCalendarizedYearlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up calendarized billing data by meter for a given range of months- Result includes cost, use, unit cost on a monthly basis.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for actual and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMeterCalendarizedMonthlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MeterDigestActualAndCalendarizedMonthlyResponse>>> {\n        const path = this.basePath + '/api/v3/meter/digest/calendarized/monthly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MeterDigestActualAndCalendarizedMonthlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up calendarized data by meter for a given range of years- Result includes cost, use, unit cost on an yearly basis.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMeterCalendarizedYearlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MeterDigestActualAndCalendarizedYearlyResponse>>> {\n        const path = this.basePath + '/api/v3/meter/digest/calendarized/yearly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MeterDigestActualAndCalendarizedYearlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up normalized billing data by meter for a given range of months- Result includes cost, use, unit cost on a monthly basis.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for actual and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMeterNormalizedMonthlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MeterDigestNormalizedMonthlyResponse>>> {\n        const path = this.basePath + '/api/v3/meter/digest/normalized/monthly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MeterDigestNormalizedMonthlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up normalized data by meter for a given range of years- Result includes cost, use, unit cost on an yearly basis.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMeterNormalizedYearlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MeterDigestNormalizedYearlyResponse>>> {\n        const path = this.basePath + '/api/v3/meter/digest/normalized/yearly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MeterDigestNormalizedYearlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up savings billing data by meter for a given number of years- Result includes cost and use savings on a monthly basis.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years/24 months\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMeterSavingsMonthlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MeterDigestSavingsMonthlyResponse>>> {\n        const path = this.basePath + '/api/v3/meter/digest/savings/monthly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MeterDigestSavingsMonthlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves savings data by meter for a given number of years.\n     * \n     * @param numberOfYears Number of years of data to return including the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMeterSavingsYearlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MeterDigestSavingsYearlyResponse>>> {\n        const path = this.basePath + '/api/v3/meter/digest/savings/yearly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MeterDigestSavingsYearlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all meters\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMetersWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MeterResponse>>> {\n        const path = this.basePath + '/api/v3/meter';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MeterResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all user defined fields / custom fields for all meters\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMetersUdfsWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MeterUDFResponse>>> {\n        const path = this.basePath + '/api/v3/meter/udf';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MeterUDFResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Returns gaps in billing data for a date range specified by the  Bill Date Range filter.  A gap is defined as at least one day that falls within the account&#39;s service dates and  not included in any bill for that account meter. The Allowable Gap Days filter specifies the number of days that must be in the gap before it will be included in the results.\n     * \n     * @param specificWidgetId Specific widget identifier to get the data for\n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMissingBillsWithHttpInfo(specificWidgetId: number, filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MissingBillWidget>>> {\n        const path = this.basePath + '/api/v3/widget/missingbills/${specificWidgetId}'\n                    .replace('${' + 'specificWidgetId' + '}', String(specificWidgetId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificWidgetId' is not null or undefined\n        if (specificWidgetId === null || specificWidgetId === undefined) {\n            throw new Error('Required parameter specificWidgetId was null or undefined when calling getMissingBills.');\n        }\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MissingBillWidget>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get all notifications for the current user\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getNotificationsWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<NotificationResponse>>> {\n        const path = this.basePath + '/api/v202108/notification';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<NotificationResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by building/organization for a given number of years- Result includes cost, use, unit cost on a monthly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for actual and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlaceActualMonthlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PlaceDigestActualAndCalendarizedMonthlyResponse>>> {\n        const path = this.basePath + '/api/v3/place/digest/actual/monthly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PlaceDigestActualAndCalendarizedMonthlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by building/organization for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlaceActualYearlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PlaceDigestActualAndCalendarizedYearlyResponse>>> {\n        const path = this.basePath + '/api/v3/place/digest/actual/yearly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PlaceDigestActualAndCalendarizedYearlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up calendarized billing data by building/organization for a given number of years- Result includes cost, use, unit cost on a monthly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for calendarized and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlaceCalendarizedMonthlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PlaceDigestActualAndCalendarizedMonthlyResponse>>> {\n        const path = this.basePath + '/api/v3/place/digest/calendarized/monthly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PlaceDigestActualAndCalendarizedMonthlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up calendarized billing data by building/organization for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlaceCalendarizedYearlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PlaceDigestActualAndCalendarizedYearlyResponse>>> {\n        const path = this.basePath + '/api/v3/place/digest/calendarized/yearly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PlaceDigestActualAndCalendarizedYearlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up normalized billing data by building/organization for a given number of years- Result includes use on a monthly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for normalized and savings, and 24 or 26 (if 13 accounting periods) for normalized and normalized)\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlaceNomalizedMonthlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PlaceDigestNormalizedMonthlyResponse>>> {\n        const path = this.basePath + '/api/v3/place/digest/normalized/monthly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PlaceDigestNormalizedMonthlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up normalized billing data by building/organization for a given number of years- Result include use on an yearly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlaceNormalizedYearlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PlaceDigestNormalizedYearlyResponse>>> {\n        const path = this.basePath + '/api/v3/place/digest/normalized/yearly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PlaceDigestNormalizedYearlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up savings data by building/organization for a given number of years- Result includes cost and use savings on a monthly basis.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years/24 months\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlaceSavingsMonthlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PlaceDigestSavingsMonthlyResponse>>> {\n        const path = this.basePath + '/api/v3/place/digest/savings/monthly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PlaceDigestSavingsMonthlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up savings billing data by building/organization for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes a commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlaceSavingsYearlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PlaceDigestSavingsYearlyResponse>>> {\n        const path = this.basePath + '/api/v3/place/digest/savings/yearly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PlaceDigestSavingsYearlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all places\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlacesWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PlaceResponse>>> {\n        const path = this.basePath + '/api/v3/place';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PlaceResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all user defined fields / custom fields for all places\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlacesUdfsWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PlaceUDFResponse>>> {\n        const path = this.basePath + '/api/v3/place/udf';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PlaceUDFResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a list of all rate schedules matching the provided filters\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getRatesWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<RateResponse>>> {\n        const path = this.basePath + '/api/v3/rate';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<RateResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a list of cost avoidance tasks NOTE: does not include cost avoidance tasks created from prior versions of the software\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getSavingsTasksWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<CostAvoidanceTask>>> {\n        const path = this.basePath + '/api/v3/savings/task';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<CostAvoidanceTask>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves a list of tasks\n     * \n     * @param taskTypeCode Task type code. Acceptable values are:      AuditGroup,      CostAvoidance,     Report,     Chargeback,     SetupSheet,     UnitsOfMeasure,     Accrual,     BillImport,      EnergyStar,     BillExport,     ReadingImport,     SummarizeReading,     BillUnexport,     V7CostAvoidance,     V7Accrual,     Budget     CostUnitUpdate,     RecordImportPfl,     EsaReadingImpPfl,     RecordImport  *This combines record import setup sheet tasks and record import with a profile tasks,     EsaReadingImport  *This combines Esa readings import setup sheet tasks and Esa Reading import with a profile tasks\n     * @param filter Filters to apply\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getTasksWithHttpInfo(taskTypeCode?: string, filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<TaskResponse>>> {\n        const path = this.basePath + '/api/v3/task';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (taskTypeCode !== undefined) {\n            queryParameters = queryParameters.set('taskTypeCode', <any>taskTypeCode);\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<TaskResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all templates\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getTemplatesWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<TemplateResponse>>> {\n        const path = this.basePath + '/api/v3/template';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<TemplateResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get all unplaced meters\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getUnplacedMetersWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MeterResponse>>> {\n        const path = this.basePath + '/api/v202203/meter/unplacedMeters';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MeterResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Gets a list of user groups\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getUserGroupsWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<UserGroupResponse>>> {\n        const path = this.basePath + '/api/v3/userGroup';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<UserGroupResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Gets a paginated list of users. Requires View permission for Users &amp; Roles.  If this permission is not available, restricted set of properties are returned.\n     * \n     * @param filter \n     * @param orderBy \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getUsersPaginatedWithHttpInfo(filter?: string, orderBy?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<UserResponse>>> {\n        const path = this.basePath + '/api/v202512/user/paginated';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (orderBy !== undefined) {\n            queryParameters = queryParameters.set('orderBy', <any>orderBy);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<UserResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves an array of vendors. The array of vendors can be filtered by a number of criteria. See the filter property for more details\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getVendorsWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<VendorResponse>>> {\n        const path = this.basePath + '/api/v3/vendor';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<VendorResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all user defined fields / custom fields for all vendors\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getVendorsUdfsWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<VendorUDFResponse>>> {\n        const path = this.basePath + '/api/v3/vendor/udf';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<VendorUDFResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get all WebCAPture Credentials\n     * \n     * @param filter \n     * @param orderBy \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getWebCaptureCredentialsWithHttpInfo(filter?: string, orderBy?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<WebCaptureCredentialResponse>>> {\n        const path = this.basePath + '/api/v202603/webCaptureCredential';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (orderBy !== undefined) {\n            queryParameters = queryParameters.set('orderBy', <any>orderBy);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<WebCaptureCredentialResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a list of webhook event logs\n     * \n     * @param webhookId \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getWebhookLogsWithHttpInfo(webhookId: number, filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<WebhookLogResponse>>> {\n        const path = this.basePath + '/api/v3/webhook/${webhookId}/log'\n                    .replace('${' + 'webhookId' + '}', String(webhookId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'webhookId' is not null or undefined\n        if (webhookId === null || webhookId === undefined) {\n            throw new Error('Required parameter webhookId was null or undefined when calling getWebhookLogs.');\n        }\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<WebhookLogResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get the meter bills list\n     * \n     * @param meterId The meter identifier to retrieve bills list for\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public meterBillListWithHttpInfo(meterId: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ListResponse>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/list/bill'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling meterBillList.');\n        }\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ListResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Search utility platform meters\n     * \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     * @param body The meter search criteria\n     */\n    public searchUtilityPlatformMetersWithHttpInfo(pageSize?: number, pageNumber?: number, body?: MeterSearchRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MoveCreateMeter>>> {\n        const path = this.basePath + '/api/v202203/utilityPlatform/meter/search';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MoveCreateMeter>>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Search service addresses\n     * \n     * @param address The address fragment to search for\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public searchUtilityPlatformServiceAddressesWithHttpInfo(address?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<AddressLookup>>> {\n        const path = this.basePath + '/api/v202203/utilityPlatform/address/search';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (address !== undefined) {\n            queryParameters = queryParameters.set('address', <any>address);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<AddressLookup>>(RequestMethod.Post, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { AccountingSettingsRequest } from '../model/accountingSettingsRequest';\nimport { AccountingSettingsResponse } from '../model/accountingSettingsResponse';\nimport { GLSubcodeRequest } from '../model/gLSubcodeRequest';\nimport { GLSubcodeResponse } from '../model/gLSubcodeResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsAccountingSettingsManagespanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Edit accounting settings\n     * \n     * @param body \n     */\n    public editAccountingSettings(body?: AccountingSettingsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<AccountingSettingsResponse> {\n        return this.editAccountingSettingsWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<AccountingSettingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit General Ledger Subcode definitions - update name, type and if \\&quot;list\\&quot; type edit (add/delete/edit) pick list values.  One or more subcodes can be edited.\n     * \n     * @param body Provide the subcode definition\n     */\n    public editGLSubCodes(body?: Array<GLSubcodeRequest>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<GLSubcodeResponse>> {\n        return this.editGLSubCodesWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<GLSubcodeResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Edit accounting settings\n     * \n     * @param body \n     */\n    public editAccountingSettingsWithHttpInfo(body?: AccountingSettingsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<AccountingSettingsResponse>> {\n        const path = this.basePath + '/api/v3/admin/accounting';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<AccountingSettingsResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edit General Ledger Subcode definitions - update name, type and if \\&quot;list\\&quot; type edit (add/delete/edit) pick list values.  One or more subcodes can be edited.\n     * \n     * @param body Provide the subcode definition\n     */\n    public editGLSubCodesWithHttpInfo(body?: Array<GLSubcodeRequest>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<GLSubcodeResponse>>> {\n        const path = this.basePath + '/api/v3/glsubcode';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<GLSubcodeResponse>>(RequestMethod.Post, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { AccountCreate } from '../model/accountCreate';\nimport { AccountResponse } from '../model/accountResponse';\nimport { GeneralLedgerRequest } from '../model/generalLedgerRequest';\nimport { GeneralLedgerResponse } from '../model/generalLedgerResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsAccountsCreatespanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Creates an account\n     * \n     * @param body Data representing the account being created\n     */\n    public createAccount(body?: AccountCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<AccountResponse> {\n        return this.createAccountWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<AccountResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Creates a General Ledger\n     * \n     * @param body Data representing the general ledger being created\n     */\n    public createGeneralLedger(body?: GeneralLedgerRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<GeneralLedgerResponse> {\n        return this.createGeneralLedgerWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<GeneralLedgerResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Creates an account\n     * \n     * @param body Data representing the account being created\n     */\n    public createAccountWithHttpInfo(body?: AccountCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<AccountResponse>> {\n        const path = this.basePath + '/api/v3/account';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<AccountResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Creates a General Ledger\n     * \n     * @param body Data representing the general ledger being created\n     */\n    public createGeneralLedgerWithHttpInfo(body?: GeneralLedgerRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<GeneralLedgerResponse>> {\n        const path = this.basePath + '/api/v3/generalledger';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<GeneralLedgerResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsAccountsDeletespanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Deletes an account. Currently NO confirmation is required\n     * \n     * @param accountId The identifier for the account being deleted\n     * @param deleteBills Should this cascade to delete any bills associated with this meter\n     */\n    public deleteAccount(accountId: number, deleteBills?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteAccountWithHttpInfo(accountId, deleteBills, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Deletes an account. Currently NO confirmation is required\n     * \n     * @param accountId The identifier for the account being deleted\n     * @param deleteBills Should this cascade to delete any bills associated with this meter\n     */\n    public deleteAccountWithHttpInfo(accountId: number, deleteBills?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/account/${accountId}'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling deleteAccount.');\n        }\n        if (deleteBills !== undefined) {\n            queryParameters = queryParameters.set('deleteBills', <any>deleteBills);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { AccountAlertRequest } from '../model/accountAlertRequest';\nimport { AccountAlertResponse } from '../model/accountAlertResponse';\nimport { AccountCodeHistoryRequest } from '../model/accountCodeHistoryRequest';\nimport { AccountCodeHistoryResponse } from '../model/accountCodeHistoryResponse';\nimport { AccountEdit } from '../model/accountEdit';\nimport { AccountMeterEdit } from '../model/accountMeterEdit';\nimport { AccountMeterRateResponse } from '../model/accountMeterRateResponse';\nimport { AccountMeterRequest } from '../model/accountMeterRequest';\nimport { AccountMeterResponse } from '../model/accountMeterResponse';\nimport { AccountRateRequest } from '../model/accountRateRequest';\nimport { AccountResponse } from '../model/accountResponse';\nimport { BulkImportArcadiaCredentialRequest } from '../model/bulkImportArcadiaCredentialRequest';\nimport { BulkImportArcadiaCredentialsResponse } from '../model/bulkImportArcadiaCredentialsResponse';\nimport { CreateTemplateFromBill } from '../model/createTemplateFromBill';\nimport { FormTemplateRequest } from '../model/formTemplateRequest';\nimport { FormTemplateResponse } from '../model/formTemplateResponse';\nimport { GeneralLedgerRequest } from '../model/generalLedgerRequest';\nimport { GeneralLedgerResponse } from '../model/generalLedgerResponse';\nimport { GenericCount } from '../model/genericCount';\nimport { LinkSubAccountsRequest } from '../model/linkSubAccountsRequest';\nimport { TemplateResponse } from '../model/templateResponse';\nimport { UDFFieldChild } from '../model/uDFFieldChild';\nimport { UDFValue } from '../model/uDFValue';\nimport { UpdateResult } from '../model/updateResult';\nimport { WebhookCustomAction } from '../model/webhookCustomAction';\nimport { WebhookLogDetailsResponse } from '../model/webhookLogDetailsResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsAccountsEditspanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Bulk import Arcadia credentials and their associated accounts\n     * \n     * @param body The list of Arcadia credentials to import\n     */\n    public bulkImportArcadiaCredentials(body?: Array<BulkImportArcadiaCredentialRequest>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BulkImportArcadiaCredentialsResponse> {\n        return this.bulkImportArcadiaCredentialsWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BulkImportArcadiaCredentialsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Creates an account alert\n     * \n     * @param accountId The identifier for the account to create alert is on\n     * @param body Data representing the account alert being created\n     */\n    public createAccountAlert(accountId: number, body?: AccountAlertRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<AccountAlertResponse> {\n        return this.createAccountAlertWithHttpInfo(accountId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<AccountAlertResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Links an account and meter together Meters must be linked to an active account to be usable in EnergyCAP Once an account and meter are created individually, they must be linked with this API\n     * \n     * @param body Data representing the account and meter being linked\n     */\n    public createAccountMeter(body?: Array<AccountMeterRequest>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<AccountMeterResponse>> {\n        return this.createAccountMeterWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<AccountMeterResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Creates an AccountRate Relationship.  Linking AccountMeter and Rate\n     * \n     * @param accountMeterId \n     * @param body \n     */\n    public createAccountRate(accountMeterId: number, body?: AccountRateRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<AccountMeterRateResponse> {\n        return this.createAccountRateWithHttpInfo(accountMeterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<AccountMeterRateResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Creates a new Template from an existing Bill&#39;s cost-only line items belonging to the provided Account (lines which came from a vendor template will be dropped).\n     * \n     * @param billId Id of Bill from which to create the Template\n     * @param accountId Id of Account whose bodylines from source bill will be used to create the Template\n     * @param body Additional information about new Template\n     */\n    public createAccountTemplateFromBill(billId: number, accountId: number, body?: CreateTemplateFromBill, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<TemplateResponse> {\n        return this.createAccountTemplateFromBillWithHttpInfo(billId, accountId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<TemplateResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Assigns a new template to an account meter.  The new template&#39;s begin date must be after the begin date of all existing template assignments\n     * \n     * @param accountMeterId \n     * @param body \n     */\n    public createFormTemplate(accountMeterId: number, body?: FormTemplateRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<FormTemplateResponse> {\n        return this.createFormTemplateWithHttpInfo(accountMeterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<FormTemplateResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Creates a new Template from an existing Bill&#39;s line items belonging to the provided Meter\n     * \n     * @param billId Id of Bill from which to create the Template\n     * @param meterId Id of Meter whose bodylines from source bill will be used to create the Template\n     * @param body Additional information about new Template\n     */\n    public createTemplateFromBill(billId: number, meterId: number, body?: CreateTemplateFromBill, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<TemplateResponse> {\n        return this.createTemplateFromBillWithHttpInfo(billId, meterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<TemplateResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes an account alert.\n     * \n     * @param accountId The identifier for the account the alert is on\n     * @param alertId The identifier for the alert to delete\n     */\n    public deleteAccountAlert(accountId: number, alertId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteAccountAlertWithHttpInfo(accountId, alertId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete an account meter\n     * \n     * @param accountMeterId \n     * @param deleteBills A true value means delete all bills that have at least 1 line for this account and meter             WARNING: Bills for this account include other meters.  The ENTIRE bill is deleted.             This flag can only be true when:             There is a single relationship between the specified account and meter\n     */\n    public deleteAccountMeter(accountMeterId: number, deleteBills?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteAccountMeterWithHttpInfo(accountMeterId, deleteBills, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete an template assignment from an account meter If we are deleting a template assignment in the middle of two other template assignments, then we will move back the next template&#39;s start date If we are deleting the last template(current template), the extend second last template&#39;s end date to match the account meter&#39;s end date If we are deleting the first template pull the second template&#39;s begin date to match account meter&#39;s begin date\n     * \n     * @param accountMeterId \n     * @param formTemplateId \n     */\n    public deleteTemplateAssignment(accountMeterId: number, formTemplateId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteTemplateAssignmentWithHttpInfo(accountMeterId, formTemplateId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits an account\n     * \n     * @param accountId The identifier for the account being edited\n     * @param body Data representing the account being edited\n     */\n    public editAccount(accountId: number, body?: AccountEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<AccountResponse> {\n        return this.editAccountWithHttpInfo(accountId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<AccountResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * \n     * \n     * @param accountId \n     * @param body \n     */\n    public editAccountCodeVersion(accountId: number, body?: AccountCodeHistoryRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<AccountCodeHistoryResponse> {\n        return this.editAccountCodeVersionWithHttpInfo(accountId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<AccountCodeHistoryResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit an account meter relationship\n     * \n     * @param accountMeterId The id of the account meter record to edit\n     * @param deleteBills A true value means delete all bills that have at least 1 line for this account and meter and a bill start date greater than or equal to the new account and meter relationship end date.             WARNING: Bills for this account may include other meters.  The ENTIRE bill is deleted.             This flag can only be true when:             Editing the most recent relationship between this account and meter             The end date has been changed but not the begin date\n     * @param body Data used to update the account and meter\n     */\n    public editAccountMeter(accountMeterId: number, deleteBills?: boolean, body?: AccountMeterEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<AccountMeterResponse> {\n        return this.editAccountMeterWithHttpInfo(accountMeterId, deleteBills, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<AccountMeterResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit all AccountRate relationships\n     * \n     * @param accountMeterId \n     * @param body \n     */\n    public editAccountRateList(accountMeterId: number, body?: Array<AccountRateRequest>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<AccountMeterRateResponse>> {\n        return this.editAccountRateListWithHttpInfo(accountMeterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<AccountMeterRateResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits user defined field / custom field values for a particular account\n     * \n     * @param accountId The identifier for the account\n     * @param body Data representing the account user defined fields / custom fields being edited\n     */\n    public editAccountUDFs(accountId: number, body?: Array<UDFValue>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<UDFFieldChild>> {\n        return this.editAccountUDFsWithHttpInfo(accountId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<UDFFieldChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit all FormTemplate relationships\n     * \n     * @param accountMeterId \n     * @param body \n     */\n    public editFormTemplateList(accountMeterId: number, body?: Array<FormTemplateRequest>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<FormTemplateResponse>> {\n        return this.editFormTemplateListWithHttpInfo(accountMeterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<FormTemplateResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Updates a General Ledger\n     * \n     * @param generalLedgerId General Ledger ID to update\n     * @param body Data representing the general ledger to update\n     */\n    public editGeneralLedger(generalLedgerId: number, body?: GeneralLedgerRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<GeneralLedgerResponse> {\n        return this.editGeneralLedgerWithHttpInfo(generalLedgerId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<GeneralLedgerResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Link sub accounts to a summary account This only adds sub accounts to a summary account.  It will not remove any links.  Use the Delete to remove accounts. Because the number of linked sub accounts can be large we just return the total number of accounts linked To get the list of all sub accounts linked to a summary account call the Get All Accounts API with the summaryAccountID filter.\n     * \n     * @param summaryAccountId \n     * @param body \n     */\n    public linkSubAccounts(summaryAccountId: number, body?: LinkSubAccountsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<GenericCount> {\n        return this.linkSubAccountsWithHttpInfo(summaryAccountId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<GenericCount>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Move list of accounts to be under parentCostCenterId\n     * \n     * @param parentCostCenterId The identifier for the new parent costCenter\n     * @param body List of accountIds to move under the parentCostCenterId\n     */\n    public moveAccount(parentCostCenterId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.moveAccountWithHttpInfo(parentCostCenterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Fires a custom account action. Custom account actions are setup as webhooks\n     * \n     * @param body \n     */\n    public processAccountCustomAction(body?: WebhookCustomAction, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<WebhookLogDetailsResponse> {\n        return this.processAccountCustomActionWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<WebhookLogDetailsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Unlink a sub account from a summary account\n     * \n     * @param summaryAccountId \n     * @param subAccountId \n     */\n    public unlinkSubAccount(summaryAccountId: number, subAccountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.unlinkSubAccountWithHttpInfo(summaryAccountId, subAccountId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Unlink all sub accounts from a summary account\n     * \n     * @param summaryAccountId \n     */\n    public unlinkSubAccounts(summaryAccountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.unlinkSubAccountsWithHttpInfo(summaryAccountId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Updates an account alert\n     * \n     * @param accountId The identifier for the account the alert to update is on\n     * @param alertId The identifier for the account alert to update\n     * @param body Data representing the account alert being created\n     */\n    public updateAccountAlert(accountId: number, alertId: number, body?: AccountAlertRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<AccountAlertResponse> {\n        return this.updateAccountAlertWithHttpInfo(accountId, alertId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<AccountAlertResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Update current template for all passed in accountMeterIds If the accountMeter is an account only record the template must be for the &#39;Money&#39; commodity or an error will be thrown If the accountMeter has no template assigned one will be created If the accountMeter&#39;s latest template assignment is end dated, a new assignment will be created starting from the latest end date All must be successfully updated otherwise none are updated and an error is returned\n     * \n     * @param templateId The template to apply to the provided accountMeterIds\n     * @param body List of accountMeterIds whose template will be updated\n     */\n    public updateAccountMetersLatestTemplate(templateId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.updateAccountMetersLatestTemplateWithHttpInfo(templateId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Bulk import Arcadia credentials and their associated accounts\n     * \n     * @param body The list of Arcadia credentials to import\n     */\n    public bulkImportArcadiaCredentialsWithHttpInfo(body?: Array<BulkImportArcadiaCredentialRequest>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BulkImportArcadiaCredentialsResponse>> {\n        const path = this.basePath + '/api/v202603/webCaptureCredential/bulkImport/arcadia';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BulkImportArcadiaCredentialsResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Creates an account alert\n     * \n     * @param accountId The identifier for the account to create alert is on\n     * @param body Data representing the account alert being created\n     */\n    public createAccountAlertWithHttpInfo(accountId: number, body?: AccountAlertRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<AccountAlertResponse>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/alert'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling createAccountAlert.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<AccountAlertResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Links an account and meter together Meters must be linked to an active account to be usable in EnergyCAP Once an account and meter are created individually, they must be linked with this API\n     * \n     * @param body Data representing the account and meter being linked\n     */\n    public createAccountMeterWithHttpInfo(body?: Array<AccountMeterRequest>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<AccountMeterResponse>>> {\n        const path = this.basePath + '/api/v3/accountmeter';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<AccountMeterResponse>>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Creates an AccountRate Relationship.  Linking AccountMeter and Rate\n     * \n     * @param accountMeterId \n     * @param body \n     */\n    public createAccountRateWithHttpInfo(accountMeterId: number, body?: AccountRateRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<AccountMeterRateResponse>> {\n        const path = this.basePath + '/api/v3/accountmeter/${accountMeterId}/rate'\n                    .replace('${' + 'accountMeterId' + '}', String(accountMeterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountMeterId' is not null or undefined\n        if (accountMeterId === null || accountMeterId === undefined) {\n            throw new Error('Required parameter accountMeterId was null or undefined when calling createAccountRate.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<AccountMeterRateResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Creates a new Template from an existing Bill&#39;s cost-only line items belonging to the provided Account (lines which came from a vendor template will be dropped).\n     * \n     * @param billId Id of Bill from which to create the Template\n     * @param accountId Id of Account whose bodylines from source bill will be used to create the Template\n     * @param body Additional information about new Template\n     */\n    public createAccountTemplateFromBillWithHttpInfo(billId: number, accountId: number, body?: CreateTemplateFromBill, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<TemplateResponse>> {\n        const path = this.basePath + '/api/v202206/bill/${billId}/account/${accountId}/template'\n                    .replace('${' + 'billId' + '}', String(billId))\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'billId' is not null or undefined\n        if (billId === null || billId === undefined) {\n            throw new Error('Required parameter billId was null or undefined when calling createAccountTemplateFromBill.');\n        }\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling createAccountTemplateFromBill.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<TemplateResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Assigns a new template to an account meter.  The new template&#39;s begin date must be after the begin date of all existing template assignments\n     * \n     * @param accountMeterId \n     * @param body \n     */\n    public createFormTemplateWithHttpInfo(accountMeterId: number, body?: FormTemplateRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<FormTemplateResponse>> {\n        const path = this.basePath + '/api/v3/accountmeter/${accountMeterId}/template'\n                    .replace('${' + 'accountMeterId' + '}', String(accountMeterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountMeterId' is not null or undefined\n        if (accountMeterId === null || accountMeterId === undefined) {\n            throw new Error('Required parameter accountMeterId was null or undefined when calling createFormTemplate.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<FormTemplateResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Creates a new Template from an existing Bill&#39;s line items belonging to the provided Meter\n     * \n     * @param billId Id of Bill from which to create the Template\n     * @param meterId Id of Meter whose bodylines from source bill will be used to create the Template\n     * @param body Additional information about new Template\n     */\n    public createTemplateFromBillWithHttpInfo(billId: number, meterId: number, body?: CreateTemplateFromBill, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<TemplateResponse>> {\n        const path = this.basePath + '/api/v3/bill/${billId}/meter/${meterId}/template'\n                    .replace('${' + 'billId' + '}', String(billId))\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'billId' is not null or undefined\n        if (billId === null || billId === undefined) {\n            throw new Error('Required parameter billId was null or undefined when calling createTemplateFromBill.');\n        }\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling createTemplateFromBill.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<TemplateResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Deletes an account alert.\n     * \n     * @param accountId The identifier for the account the alert is on\n     * @param alertId The identifier for the alert to delete\n     */\n    public deleteAccountAlertWithHttpInfo(accountId: number, alertId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/alert/${alertId}'\n                    .replace('${' + 'accountId' + '}', String(accountId))\n                    .replace('${' + 'alertId' + '}', String(alertId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling deleteAccountAlert.');\n        }\n        // verify required parameter 'alertId' is not null or undefined\n        if (alertId === null || alertId === undefined) {\n            throw new Error('Required parameter alertId was null or undefined when calling deleteAccountAlert.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Delete an account meter\n     * \n     * @param accountMeterId \n     * @param deleteBills A true value means delete all bills that have at least 1 line for this account and meter             WARNING: Bills for this account include other meters.  The ENTIRE bill is deleted.             This flag can only be true when:             There is a single relationship between the specified account and meter\n     */\n    public deleteAccountMeterWithHttpInfo(accountMeterId: number, deleteBills?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/accountmeter/${accountMeterId}'\n                    .replace('${' + 'accountMeterId' + '}', String(accountMeterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountMeterId' is not null or undefined\n        if (accountMeterId === null || accountMeterId === undefined) {\n            throw new Error('Required parameter accountMeterId was null or undefined when calling deleteAccountMeter.');\n        }\n        if (deleteBills !== undefined) {\n            queryParameters = queryParameters.set('deleteBills', <any>deleteBills);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Delete an template assignment from an account meter If we are deleting a template assignment in the middle of two other template assignments, then we will move back the next template&#39;s start date If we are deleting the last template(current template), the extend second last template&#39;s end date to match the account meter&#39;s end date If we are deleting the first template pull the second template&#39;s begin date to match account meter&#39;s begin date\n     * \n     * @param accountMeterId \n     * @param formTemplateId \n     */\n    public deleteTemplateAssignmentWithHttpInfo(accountMeterId: number, formTemplateId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/accountmeter/${accountMeterId}/template/${formTemplateId}'\n                    .replace('${' + 'accountMeterId' + '}', String(accountMeterId))\n                    .replace('${' + 'formTemplateId' + '}', String(formTemplateId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountMeterId' is not null or undefined\n        if (accountMeterId === null || accountMeterId === undefined) {\n            throw new Error('Required parameter accountMeterId was null or undefined when calling deleteTemplateAssignment.');\n        }\n        // verify required parameter 'formTemplateId' is not null or undefined\n        if (formTemplateId === null || formTemplateId === undefined) {\n            throw new Error('Required parameter formTemplateId was null or undefined when calling deleteTemplateAssignment.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Edits an account\n     * \n     * @param accountId The identifier for the account being edited\n     * @param body Data representing the account being edited\n     */\n    public editAccountWithHttpInfo(accountId: number, body?: AccountEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<AccountResponse>> {\n        const path = this.basePath + '/api/v202511/account/${accountId}'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling editAccount.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<AccountResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * \n     * \n     * @param accountId \n     * @param body \n     */\n    public editAccountCodeVersionWithHttpInfo(accountId: number, body?: AccountCodeHistoryRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<AccountCodeHistoryResponse>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/codeversion'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling editAccountCodeVersion.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<AccountCodeHistoryResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edit an account meter relationship\n     * \n     * @param accountMeterId The id of the account meter record to edit\n     * @param deleteBills A true value means delete all bills that have at least 1 line for this account and meter and a bill start date greater than or equal to the new account and meter relationship end date.             WARNING: Bills for this account may include other meters.  The ENTIRE bill is deleted.             This flag can only be true when:             Editing the most recent relationship between this account and meter             The end date has been changed but not the begin date\n     * @param body Data used to update the account and meter\n     */\n    public editAccountMeterWithHttpInfo(accountMeterId: number, deleteBills?: boolean, body?: AccountMeterEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<AccountMeterResponse>> {\n        const path = this.basePath + '/api/v3/accountmeter/${accountMeterId}'\n                    .replace('${' + 'accountMeterId' + '}', String(accountMeterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountMeterId' is not null or undefined\n        if (accountMeterId === null || accountMeterId === undefined) {\n            throw new Error('Required parameter accountMeterId was null or undefined when calling editAccountMeter.');\n        }\n        if (deleteBills !== undefined) {\n            queryParameters = queryParameters.set('deleteBills', <any>deleteBills);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<AccountMeterResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edit all AccountRate relationships\n     * \n     * @param accountMeterId \n     * @param body \n     */\n    public editAccountRateListWithHttpInfo(accountMeterId: number, body?: Array<AccountRateRequest>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<AccountMeterRateResponse>>> {\n        const path = this.basePath + '/api/v3/accountmeter/${accountMeterId}/rate'\n                    .replace('${' + 'accountMeterId' + '}', String(accountMeterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountMeterId' is not null or undefined\n        if (accountMeterId === null || accountMeterId === undefined) {\n            throw new Error('Required parameter accountMeterId was null or undefined when calling editAccountRateList.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<AccountMeterRateResponse>>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edits user defined field / custom field values for a particular account\n     * \n     * @param accountId The identifier for the account\n     * @param body Data representing the account user defined fields / custom fields being edited\n     */\n    public editAccountUDFsWithHttpInfo(accountId: number, body?: Array<UDFValue>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<UDFFieldChild>>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/udf'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling editAccountUDFs.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<UDFFieldChild>>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edit all FormTemplate relationships\n     * \n     * @param accountMeterId \n     * @param body \n     */\n    public editFormTemplateListWithHttpInfo(accountMeterId: number, body?: Array<FormTemplateRequest>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<FormTemplateResponse>>> {\n        const path = this.basePath + '/api/v3/accountmeter/${accountMeterId}/template'\n                    .replace('${' + 'accountMeterId' + '}', String(accountMeterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountMeterId' is not null or undefined\n        if (accountMeterId === null || accountMeterId === undefined) {\n            throw new Error('Required parameter accountMeterId was null or undefined when calling editFormTemplateList.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<FormTemplateResponse>>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Updates a General Ledger\n     * \n     * @param generalLedgerId General Ledger ID to update\n     * @param body Data representing the general ledger to update\n     */\n    public editGeneralLedgerWithHttpInfo(generalLedgerId: number, body?: GeneralLedgerRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<GeneralLedgerResponse>> {\n        const path = this.basePath + '/api/v3/generalledger/${generalLedgerId}'\n                    .replace('${' + 'generalLedgerId' + '}', String(generalLedgerId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'generalLedgerId' is not null or undefined\n        if (generalLedgerId === null || generalLedgerId === undefined) {\n            throw new Error('Required parameter generalLedgerId was null or undefined when calling editGeneralLedger.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<GeneralLedgerResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Link sub accounts to a summary account This only adds sub accounts to a summary account.  It will not remove any links.  Use the Delete to remove accounts. Because the number of linked sub accounts can be large we just return the total number of accounts linked To get the list of all sub accounts linked to a summary account call the Get All Accounts API with the summaryAccountID filter.\n     * \n     * @param summaryAccountId \n     * @param body \n     */\n    public linkSubAccountsWithHttpInfo(summaryAccountId: number, body?: LinkSubAccountsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<GenericCount>> {\n        const path = this.basePath + '/api/v202407/summaryAccount/${summaryAccountId}/subAccount'\n                    .replace('${' + 'summaryAccountId' + '}', String(summaryAccountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'summaryAccountId' is not null or undefined\n        if (summaryAccountId === null || summaryAccountId === undefined) {\n            throw new Error('Required parameter summaryAccountId was null or undefined when calling linkSubAccounts.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<GenericCount>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Move list of accounts to be under parentCostCenterId\n     * \n     * @param parentCostCenterId The identifier for the new parent costCenter\n     * @param body List of accountIds to move under the parentCostCenterId\n     */\n    public moveAccountWithHttpInfo(parentCostCenterId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/parentCostCenter/${parentCostCenterId}/account'\n                    .replace('${' + 'parentCostCenterId' + '}', String(parentCostCenterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'parentCostCenterId' is not null or undefined\n        if (parentCostCenterId === null || parentCostCenterId === undefined) {\n            throw new Error('Required parameter parentCostCenterId was null or undefined when calling moveAccount.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Fires a custom account action. Custom account actions are setup as webhooks\n     * \n     * @param body \n     */\n    public processAccountCustomActionWithHttpInfo(body?: WebhookCustomAction, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<WebhookLogDetailsResponse>> {\n        const path = this.basePath + '/api/v202211/account/customAction';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<WebhookLogDetailsResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Unlink a sub account from a summary account\n     * \n     * @param summaryAccountId \n     * @param subAccountId \n     */\n    public unlinkSubAccountWithHttpInfo(summaryAccountId: number, subAccountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202407/summaryAccount/${summaryAccountId}/subAccount/${subAccountId}'\n                    .replace('${' + 'summaryAccountId' + '}', String(summaryAccountId))\n                    .replace('${' + 'subAccountId' + '}', String(subAccountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'summaryAccountId' is not null or undefined\n        if (summaryAccountId === null || summaryAccountId === undefined) {\n            throw new Error('Required parameter summaryAccountId was null or undefined when calling unlinkSubAccount.');\n        }\n        // verify required parameter 'subAccountId' is not null or undefined\n        if (subAccountId === null || subAccountId === undefined) {\n            throw new Error('Required parameter subAccountId was null or undefined when calling unlinkSubAccount.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Unlink all sub accounts from a summary account\n     * \n     * @param summaryAccountId \n     */\n    public unlinkSubAccountsWithHttpInfo(summaryAccountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202407/summaryAccount/${summaryAccountId}/subAccount'\n                    .replace('${' + 'summaryAccountId' + '}', String(summaryAccountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'summaryAccountId' is not null or undefined\n        if (summaryAccountId === null || summaryAccountId === undefined) {\n            throw new Error('Required parameter summaryAccountId was null or undefined when calling unlinkSubAccounts.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Updates an account alert\n     * \n     * @param accountId The identifier for the account the alert to update is on\n     * @param alertId The identifier for the account alert to update\n     * @param body Data representing the account alert being created\n     */\n    public updateAccountAlertWithHttpInfo(accountId: number, alertId: number, body?: AccountAlertRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<AccountAlertResponse>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/alert/${alertId}'\n                    .replace('${' + 'accountId' + '}', String(accountId))\n                    .replace('${' + 'alertId' + '}', String(alertId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling updateAccountAlert.');\n        }\n        // verify required parameter 'alertId' is not null or undefined\n        if (alertId === null || alertId === undefined) {\n            throw new Error('Required parameter alertId was null or undefined when calling updateAccountAlert.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<AccountAlertResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Update current template for all passed in accountMeterIds If the accountMeter is an account only record the template must be for the &#39;Money&#39; commodity or an error will be thrown If the accountMeter has no template assigned one will be created If the accountMeter&#39;s latest template assignment is end dated, a new assignment will be created starting from the latest end date All must be successfully updated otherwise none are updated and an error is returned\n     * \n     * @param templateId The template to apply to the provided accountMeterIds\n     * @param body List of accountMeterIds whose template will be updated\n     */\n    public updateAccountMetersLatestTemplateWithHttpInfo(templateId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/template/${templateId}/accountMeter'\n                    .replace('${' + 'templateId' + '}', String(templateId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'templateId' is not null or undefined\n        if (templateId === null || templateId === undefined) {\n            throw new Error('Required parameter templateId was null or undefined when calling updateAccountMetersLatestTemplate.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { AccountAlertResponse } from '../model/accountAlertResponse';\nimport { AccountDigestActualMonthlyResponse } from '../model/accountDigestActualMonthlyResponse';\nimport { AccountDigestActualYearlyResponse } from '../model/accountDigestActualYearlyResponse';\nimport { AccountRateResponse } from '../model/accountRateResponse';\nimport { AccountResponse } from '../model/accountResponse';\nimport { AccountTemplateResponse } from '../model/accountTemplateResponse';\nimport { AccountUDFResponse } from '../model/accountUDFResponse';\nimport { BillSplitDetailsResponse } from '../model/billSplitDetailsResponse';\nimport { BillSplitParentDetailsResponse } from '../model/billSplitParentDetailsResponse';\nimport { DistributionVersionResponse } from '../model/distributionVersionResponse';\nimport { GLSubcodeResponse } from '../model/gLSubcodeResponse';\nimport { GeneralLedgerResponse } from '../model/generalLedgerResponse';\nimport { SearchAccountMeterBillEntry } from '../model/searchAccountMeterBillEntry';\nimport { UDFFieldChild } from '../model/uDFFieldChild';\nimport { WebCaptureCredentialDetailsResponse } from '../model/webCaptureCredentialDetailsResponse';\nimport { WebCaptureCredentialResponse } from '../model/webCaptureCredentialResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsAccountsViewspanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Download file for an account custom field\n     * \n     * @param accountId \n     * @param udfId \n     */\n    public downloadAccountCustomFieldFile(accountId: number, udfId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.downloadAccountCustomFieldFileWithHttpInfo(accountId, udfId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves one account\n     * \n     * @param accountId The account identifier for the account being retrieved\n     */\n    public getAccount(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<AccountResponse> {\n        return this.getAccountWithHttpInfo(accountId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<AccountResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by account for a given number of years- Result includes cost, use, unit cost on a monthly basis. It also includes commodity level break up.\n     * \n     * @param accountId The account to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 24 months\n     */\n    public getAccountActualMonthly(accountId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<AccountDigestActualMonthlyResponse> {\n        return this.getAccountActualMonthlyWithHttpInfo(accountId, numberOfYears, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<AccountDigestActualMonthlyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by account for a given number of years- Result includes cost, use, unit cost on a monthly basis. It also includes commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 24 months\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getAccountActualMonthlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<AccountDigestActualMonthlyResponse>> {\n        return this.getAccountActualMonthlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<AccountDigestActualMonthlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by account for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes commodity level break up.\n     * \n     * @param accountId The account to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     */\n    public getAccountActualYearly(accountId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<AccountDigestActualYearlyResponse> {\n        return this.getAccountActualYearlyWithHttpInfo(accountId, numberOfYears, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<AccountDigestActualYearlyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by account for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getAccountActualYearlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<AccountDigestActualYearlyResponse>> {\n        return this.getAccountActualYearlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<AccountDigestActualYearlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves an alert for an account\n     * \n     * @param accountId The identifier for the account the alert is on\n     * @param alertId The identifier for the alert to return\n     */\n    public getAccountAlert(accountId: number, alertId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<AccountAlertResponse> {\n        return this.getAccountAlertWithHttpInfo(accountId, alertId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<AccountAlertResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all alerts for an account\n     * \n     * @param accountId The identifier for the account\n     */\n    public getAccountAlerts(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<AccountAlertResponse>> {\n        return this.getAccountAlertsWithHttpInfo(accountId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<AccountAlertResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get bill split parent information for an account\n     * \n     * @param accountId ID of the account\n     */\n    public getAccountBillSplitParentDetails(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BillSplitParentDetailsResponse>> {\n        return this.getAccountBillSplitParentDetailsWithHttpInfo(accountId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BillSplitParentDetailsResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all rates for a particular account\n     * \n     * @param accountId The account identifier for which rate values are being retrieved\n     */\n    public getAccountRates(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<AccountRateResponse>> {\n        return this.getAccountRatesWithHttpInfo(accountId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<AccountRateResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all templates for a particular account\n     * \n     * @param accountId The account identifier for which template values are being retrieved\n     */\n    public getAccountTemplates(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<AccountTemplateResponse>> {\n        return this.getAccountTemplatesWithHttpInfo(accountId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<AccountTemplateResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all user defined fields / custom fields for a particular account\n     * \n     * @param accountId The account identifier for which user defined field / custom field values are being retrieved\n     */\n    public getAccountUdfs(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<UDFFieldChild>> {\n        return this.getAccountUdfsWithHttpInfo(accountId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<UDFFieldChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all accounts\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getAccounts(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<AccountResponse>> {\n        return this.getAccountsWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<AccountResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all user defined fields / custom fields for all accounts\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getAccountsUdfs(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<AccountUDFResponse>> {\n        return this.getAccountsUdfsWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<AccountUDFResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get details for a bill split distribution\n     * \n     * @param accountId ID of the account\n     * @param meterId ID of the meter\n     * @param versionId ID of the distribution version\n     */\n    public getBillSplitDetails(accountId: number, meterId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BillSplitDetailsResponse> {\n        return this.getBillSplitDetailsWithHttpInfo(accountId, meterId, versionId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BillSplitDetailsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a list of bill split versions on this account and meter relationship\n     * \n     * @param accountId ID of the account to get all assigned bill split versions\n     * @param meterId ID of the meter to get all assigned bill split versions\n     */\n    public getBillSplitVersionHistory(accountId: number, meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<DistributionVersionResponse>> {\n        return this.getBillSplitVersionHistoryWithHttpInfo(accountId, meterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<DistributionVersionResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a list of bill split versions on an account\n     * \n     * @param accountId ID of the account to get all assigned bill split versions\n     */\n    public getBillSplits(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<DistributionVersionResponse>> {\n        return this.getBillSplitsWithHttpInfo(accountId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<DistributionVersionResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves specific General Ledger Subcode definition\n     * \n     * @param subCodeIndex The index of the subCode being retrieved\n     */\n    public getGLSubCode(subCodeIndex: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<GLSubcodeResponse> {\n        return this.getGLSubCodeWithHttpInfo(subCodeIndex, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<GLSubcodeResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves unique General Ledger Subcode values\n     * \n     * @param subCodeIndex The index of the subCode whose values are being retrieved\n     */\n    public getGLSubCodeValues(subCodeIndex: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<string>> {\n        return this.getGLSubCodeValuesWithHttpInfo(subCodeIndex, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<string>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all General Ledger SubCode definitions\n     * \n     */\n    public getGLSubCodes(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<GLSubcodeResponse>> {\n        return this.getGLSubCodesWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<GLSubcodeResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves a specific General Ledger\n     * \n     * @param generalLedgerId General Ledger ID to return\n     */\n    public getGeneralLedger(generalLedgerId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<GeneralLedgerResponse> {\n        return this.getGeneralLedgerWithHttpInfo(generalLedgerId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<GeneralLedgerResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all General Ledgers\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getGeneralLedgers(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<GeneralLedgerResponse>> {\n        return this.getGeneralLedgersWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<GeneralLedgerResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a WebCAPture Credential by ID\n     * \n     * @param webCaptureCredentialId The WEBCapture Credential identifier\n     */\n    public getWebCaptureCredential(webCaptureCredentialId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<WebCaptureCredentialDetailsResponse> {\n        return this.getWebCaptureCredentialWithHttpInfo(webCaptureCredentialId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<WebCaptureCredentialDetailsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get all WebCAPture Credentials\n     * \n     * @param filter \n     * @param orderBy \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getWebCaptureCredentials(filter?: string, orderBy?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<WebCaptureCredentialResponse>> {\n        return this.getWebCaptureCredentialsWithHttpInfo(filter, orderBy, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<WebCaptureCredentialResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Search for accounts Search for accounts whose account code, address, old account code, meter serial number, or meter address contains \\&quot;query\\&quot;\n     * \n     * @param query The string to search for\n     * @param includeInactiveAccounts Flag to determine if inactive accounts should be included in the search results\n     */\n    public searchAccounts(query?: string, includeInactiveAccounts?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<SearchAccountMeterBillEntry>> {\n        return this.searchAccountsWithHttpInfo(query, includeInactiveAccounts, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<SearchAccountMeterBillEntry>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Download file for an account custom field\n     * \n     * @param accountId \n     * @param udfId \n     */\n    public downloadAccountCustomFieldFileWithHttpInfo(accountId: number, udfId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202105/account/${accountId}/udf/${udfId}/download'\n                    .replace('${' + 'accountId' + '}', String(accountId))\n                    .replace('${' + 'udfId' + '}', String(udfId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling downloadAccountCustomFieldFile.');\n        }\n        // verify required parameter 'udfId' is not null or undefined\n        if (udfId === null || udfId === undefined) {\n            throw new Error('Required parameter udfId was null or undefined when calling downloadAccountCustomFieldFile.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves one account\n     * \n     * @param accountId The account identifier for the account being retrieved\n     */\n    public getAccountWithHttpInfo(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<AccountResponse>> {\n        const path = this.basePath + '/api/v3/account/${accountId}'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling getAccount.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<AccountResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by account for a given number of years- Result includes cost, use, unit cost on a monthly basis. It also includes commodity level break up.\n     * \n     * @param accountId The account to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 24 months\n     */\n    public getAccountActualMonthlyWithHttpInfo(accountId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<AccountDigestActualMonthlyResponse>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/digest/actual/monthly'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling getAccountActualMonthly.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<AccountDigestActualMonthlyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by account for a given number of years- Result includes cost, use, unit cost on a monthly basis. It also includes commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 24 months\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getAccountActualMonthlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<AccountDigestActualMonthlyResponse>>> {\n        const path = this.basePath + '/api/v3/account/digest/actual/monthly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<AccountDigestActualMonthlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by account for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes commodity level break up.\n     * \n     * @param accountId The account to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     */\n    public getAccountActualYearlyWithHttpInfo(accountId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<AccountDigestActualYearlyResponse>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/digest/actual/yearly'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling getAccountActualYearly.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<AccountDigestActualYearlyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by account for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getAccountActualYearlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<AccountDigestActualYearlyResponse>>> {\n        const path = this.basePath + '/api/v3/account/digest/actual/yearly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<AccountDigestActualYearlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves an alert for an account\n     * \n     * @param accountId The identifier for the account the alert is on\n     * @param alertId The identifier for the alert to return\n     */\n    public getAccountAlertWithHttpInfo(accountId: number, alertId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<AccountAlertResponse>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/alert/${alertId}'\n                    .replace('${' + 'accountId' + '}', String(accountId))\n                    .replace('${' + 'alertId' + '}', String(alertId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling getAccountAlert.');\n        }\n        // verify required parameter 'alertId' is not null or undefined\n        if (alertId === null || alertId === undefined) {\n            throw new Error('Required parameter alertId was null or undefined when calling getAccountAlert.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<AccountAlertResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all alerts for an account\n     * \n     * @param accountId The identifier for the account\n     */\n    public getAccountAlertsWithHttpInfo(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<AccountAlertResponse>>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/alert'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling getAccountAlerts.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<AccountAlertResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get bill split parent information for an account\n     * \n     * @param accountId ID of the account\n     */\n    public getAccountBillSplitParentDetailsWithHttpInfo(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BillSplitParentDetailsResponse>>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/billSplit/parent'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling getAccountBillSplitParentDetails.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BillSplitParentDetailsResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all rates for a particular account\n     * \n     * @param accountId The account identifier for which rate values are being retrieved\n     */\n    public getAccountRatesWithHttpInfo(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<AccountRateResponse>>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/rate'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling getAccountRates.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<AccountRateResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all templates for a particular account\n     * \n     * @param accountId The account identifier for which template values are being retrieved\n     */\n    public getAccountTemplatesWithHttpInfo(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<AccountTemplateResponse>>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/template'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling getAccountTemplates.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<AccountTemplateResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all user defined fields / custom fields for a particular account\n     * \n     * @param accountId The account identifier for which user defined field / custom field values are being retrieved\n     */\n    public getAccountUdfsWithHttpInfo(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<UDFFieldChild>>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/udf'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling getAccountUdfs.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<UDFFieldChild>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all accounts\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getAccountsWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<AccountResponse>>> {\n        const path = this.basePath + '/api/v3/account';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<AccountResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all user defined fields / custom fields for all accounts\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getAccountsUdfsWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<AccountUDFResponse>>> {\n        const path = this.basePath + '/api/v3/account/udf';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<AccountUDFResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get details for a bill split distribution\n     * \n     * @param accountId ID of the account\n     * @param meterId ID of the meter\n     * @param versionId ID of the distribution version\n     */\n    public getBillSplitDetailsWithHttpInfo(accountId: number, meterId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BillSplitDetailsResponse>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/meter/${meterId}/billSplit/${versionId}'\n                    .replace('${' + 'accountId' + '}', String(accountId))\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling getBillSplitDetails.');\n        }\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getBillSplitDetails.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling getBillSplitDetails.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BillSplitDetailsResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a list of bill split versions on this account and meter relationship\n     * \n     * @param accountId ID of the account to get all assigned bill split versions\n     * @param meterId ID of the meter to get all assigned bill split versions\n     */\n    public getBillSplitVersionHistoryWithHttpInfo(accountId: number, meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<DistributionVersionResponse>>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/meter/${meterId}/billSplit'\n                    .replace('${' + 'accountId' + '}', String(accountId))\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling getBillSplitVersionHistory.');\n        }\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getBillSplitVersionHistory.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<DistributionVersionResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a list of bill split versions on an account\n     * \n     * @param accountId ID of the account to get all assigned bill split versions\n     */\n    public getBillSplitsWithHttpInfo(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<DistributionVersionResponse>>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/billSplit'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling getBillSplits.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<DistributionVersionResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves specific General Ledger Subcode definition\n     * \n     * @param subCodeIndex The index of the subCode being retrieved\n     */\n    public getGLSubCodeWithHttpInfo(subCodeIndex: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<GLSubcodeResponse>> {\n        const path = this.basePath + '/api/v3/glsubcode/${subCodeIndex}'\n                    .replace('${' + 'subCodeIndex' + '}', String(subCodeIndex));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'subCodeIndex' is not null or undefined\n        if (subCodeIndex === null || subCodeIndex === undefined) {\n            throw new Error('Required parameter subCodeIndex was null or undefined when calling getGLSubCode.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<GLSubcodeResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves unique General Ledger Subcode values\n     * \n     * @param subCodeIndex The index of the subCode whose values are being retrieved\n     */\n    public getGLSubCodeValuesWithHttpInfo(subCodeIndex: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<string>>> {\n        const path = this.basePath + '/api/v3/glsubcode/${subCodeIndex}/savedValues'\n                    .replace('${' + 'subCodeIndex' + '}', String(subCodeIndex));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'subCodeIndex' is not null or undefined\n        if (subCodeIndex === null || subCodeIndex === undefined) {\n            throw new Error('Required parameter subCodeIndex was null or undefined when calling getGLSubCodeValues.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<string>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all General Ledger SubCode definitions\n     * \n     */\n    public getGLSubCodesWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<GLSubcodeResponse>>> {\n        const path = this.basePath + '/api/v3/glsubcode';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<GLSubcodeResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves a specific General Ledger\n     * \n     * @param generalLedgerId General Ledger ID to return\n     */\n    public getGeneralLedgerWithHttpInfo(generalLedgerId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<GeneralLedgerResponse>> {\n        const path = this.basePath + '/api/v3/generalledger/${generalLedgerId}'\n                    .replace('${' + 'generalLedgerId' + '}', String(generalLedgerId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'generalLedgerId' is not null or undefined\n        if (generalLedgerId === null || generalLedgerId === undefined) {\n            throw new Error('Required parameter generalLedgerId was null or undefined when calling getGeneralLedger.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<GeneralLedgerResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all General Ledgers\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getGeneralLedgersWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<GeneralLedgerResponse>>> {\n        const path = this.basePath + '/api/v3/generalledger';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<GeneralLedgerResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a WebCAPture Credential by ID\n     * \n     * @param webCaptureCredentialId The WEBCapture Credential identifier\n     */\n    public getWebCaptureCredentialWithHttpInfo(webCaptureCredentialId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<WebCaptureCredentialDetailsResponse>> {\n        const path = this.basePath + '/api/v202603/webCaptureCredential/${webCaptureCredentialId}'\n                    .replace('${' + 'webCaptureCredentialId' + '}', String(webCaptureCredentialId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'webCaptureCredentialId' is not null or undefined\n        if (webCaptureCredentialId === null || webCaptureCredentialId === undefined) {\n            throw new Error('Required parameter webCaptureCredentialId was null or undefined when calling getWebCaptureCredential.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<WebCaptureCredentialDetailsResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get all WebCAPture Credentials\n     * \n     * @param filter \n     * @param orderBy \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getWebCaptureCredentialsWithHttpInfo(filter?: string, orderBy?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<WebCaptureCredentialResponse>>> {\n        const path = this.basePath + '/api/v202603/webCaptureCredential';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (orderBy !== undefined) {\n            queryParameters = queryParameters.set('orderBy', <any>orderBy);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<WebCaptureCredentialResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Search for accounts Search for accounts whose account code, address, old account code, meter serial number, or meter address contains \\&quot;query\\&quot;\n     * \n     * @param query The string to search for\n     * @param includeInactiveAccounts Flag to determine if inactive accounts should be included in the search results\n     */\n    public searchAccountsWithHttpInfo(query?: string, includeInactiveAccounts?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<SearchAccountMeterBillEntry>>> {\n        const path = this.basePath + '/api/v3/account/search';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (query !== undefined) {\n            queryParameters = queryParameters.set('query', <any>query);\n        }\n\n        if (includeInactiveAccounts !== undefined) {\n            queryParameters = queryParameters.set('includeInactiveAccounts', <any>includeInactiveAccounts);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<SearchAccountMeterBillEntry>>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { BillAccrualExclusionRequest } from '../model/billAccrualExclusionRequest';\nimport { ListActionAccrualExclusion } from '../model/listActionAccrualExclusion';\nimport { UpdateResult } from '../model/updateResult';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsAccrualSettingsManagespanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Excludes or undoes exclusion of bills from accruals\n     * \n     * @param accountId The account whose bills will be excluded or have exclusion undone\n     * @param body Indicates whether or not the bills should be excluded from accruals or should have exclusion undone\n     */\n    public setAccountBillListAccrualExclusion(accountId: number, body?: ListActionAccrualExclusion, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.setAccountBillListAccrualExclusionWithHttpInfo(accountId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Excludes or undoes exclusion of bills from accruals\n     * \n     * @param body \n     */\n    public setBillAccrualExclusion(body?: BillAccrualExclusionRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.setBillAccrualExclusionWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Excludes or undoes exclusion of bills from accruals\n     * \n     * @param listId The list whose bills will be excluded or have exclusion undone\n     * @param body Indicates whether or not the provided list should be excluded from accruals or should have exclusion undone\n     */\n    public setBillListAccrualExclusion(listId: number, body?: ListActionAccrualExclusion, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.setBillListAccrualExclusionWithHttpInfo(listId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Excludes or undoes exclusion of bills from accruals\n     * \n     * @param meterId The meter whose bills will be excluded or have exclusion undone\n     * @param body Indicates whether or not the bills should be excluded from accruals or should have exclusion undone\n     */\n    public setMeterBillListAccrualExclusion(meterId: number, body?: ListActionAccrualExclusion, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.setMeterBillListAccrualExclusionWithHttpInfo(meterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Excludes or undoes exclusion of bills from accruals\n     * \n     * @param accountId The account whose bills will be excluded or have exclusion undone\n     * @param body Indicates whether or not the bills should be excluded from accruals or should have exclusion undone\n     */\n    public setAccountBillListAccrualExclusionWithHttpInfo(accountId: number, body?: ListActionAccrualExclusion, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/list/bill/accrualExclusion'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling setAccountBillListAccrualExclusion.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Excludes or undoes exclusion of bills from accruals\n     * \n     * @param body \n     */\n    public setBillAccrualExclusionWithHttpInfo(body?: BillAccrualExclusionRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/bill/accrualExclusion';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Excludes or undoes exclusion of bills from accruals\n     * \n     * @param listId The list whose bills will be excluded or have exclusion undone\n     * @param body Indicates whether or not the provided list should be excluded from accruals or should have exclusion undone\n     */\n    public setBillListAccrualExclusionWithHttpInfo(listId: number, body?: ListActionAccrualExclusion, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/list/${listId}/accrualExclusion'\n                    .replace('${' + 'listId' + '}', String(listId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'listId' is not null or undefined\n        if (listId === null || listId === undefined) {\n            throw new Error('Required parameter listId was null or undefined when calling setBillListAccrualExclusion.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Excludes or undoes exclusion of bills from accruals\n     * \n     * @param meterId The meter whose bills will be excluded or have exclusion undone\n     * @param body Indicates whether or not the bills should be excluded from accruals or should have exclusion undone\n     */\n    public setMeterBillListAccrualExclusionWithHttpInfo(meterId: number, body?: ListActionAccrualExclusion, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/list/bill/accrualExclusion'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling setMeterBillListAccrualExclusion.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { AccrualProcessorRequest } from '../model/accrualProcessorRequest';\nimport { GuidResponse } from '../model/guidResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsAccrualSettingsRunspanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Delete all bills created by the Accrual task  If any bills have already been exported they will still be deleted\n     * \n     * @param taskId Identifier for the accrual task\n     */\n    public deleteAccrualTask(taskId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteAccrualTaskWithHttpInfo(taskId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Run the accrual processor engine using the supplied settings to generate accrual bills\n     * \n     * @param filter Accrual data selection filters\n     * @param body Accrual processor settings\n     */\n    public processAccruals(filter?: string, body?: AccrualProcessorRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<GuidResponse> {\n        return this.processAccrualsWithHttpInfo(filter, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<GuidResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Void all bills created by the Accrual task If any bills have already been exported they will still be voided\n     * \n     * @param taskId Identifier for the accrual task\n     */\n    public voidAccrualTask(taskId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.voidAccrualTaskWithHttpInfo(taskId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Delete all bills created by the Accrual task  If any bills have already been exported they will still be deleted\n     * \n     * @param taskId Identifier for the accrual task\n     */\n    public deleteAccrualTaskWithHttpInfo(taskId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/accrual/${taskId}/delete'\n                    .replace('${' + 'taskId' + '}', String(taskId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'taskId' is not null or undefined\n        if (taskId === null || taskId === undefined) {\n            throw new Error('Required parameter taskId was null or undefined when calling deleteAccrualTask.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Run the accrual processor engine using the supplied settings to generate accrual bills\n     * \n     * @param filter Accrual data selection filters\n     * @param body Accrual processor settings\n     */\n    public processAccrualsWithHttpInfo(filter?: string, body?: AccrualProcessorRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<GuidResponse>> {\n        const path = this.basePath + '/api/v3/accrual';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<GuidResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Void all bills created by the Accrual task If any bills have already been exported they will still be voided\n     * \n     * @param taskId Identifier for the accrual task\n     */\n    public voidAccrualTaskWithHttpInfo(taskId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/accrual/${taskId}/void'\n                    .replace('${' + 'taskId' + '}', String(taskId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'taskId' is not null or undefined\n        if (taskId === null || taskId === undefined) {\n            throw new Error('Required parameter taskId was null or undefined when calling voidAccrualTask.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Post, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { AccrualSettingsResponse } from '../model/accrualSettingsResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsAccrualSettingsViewspanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Get Accrual settings\n     * \n     */\n    public getAccrualSettings(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<AccrualSettingsResponse> {\n        return this.getAccrualSettingsWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<AccrualSettingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Get Accrual settings\n     * \n     */\n    public getAccrualSettingsWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<AccrualSettingsResponse>> {\n        const path = this.basePath + '/api/v3/accrual/setting';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<AccrualSettingsResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { ApiKeyEditRequest } from '../model/apiKeyEditRequest';\nimport { ApiKeyResponse } from '../model/apiKeyResponse';\nimport { BenchmarkSettingsEdit } from '../model/benchmarkSettingsEdit';\nimport { BenchmarkSettingsResponse } from '../model/benchmarkSettingsResponse';\nimport { CostCategoryEdit } from '../model/costCategoryEdit';\nimport { CostCategoryResponse } from '../model/costCategoryResponse';\nimport { ReportingSettingRequest } from '../model/reportingSettingRequest';\nimport { ReportingSettingResponse } from '../model/reportingSettingResponse';\nimport { RollupUnitUpdate } from '../model/rollupUnitUpdate';\nimport { SystemSettingsRequest } from '../model/systemSettingsRequest';\nimport { SystemSettingsResponse } from '../model/systemSettingsResponse';\nimport { TaskResponse } from '../model/taskResponse';\nimport { UDFCreate } from '../model/uDFCreate';\nimport { UDFEdit } from '../model/uDFEdit';\nimport { UDFResponse } from '../model/uDFResponse';\nimport { UDFUpdate } from '../model/uDFUpdate';\nimport { WebhookCreateRequest } from '../model/webhookCreateRequest';\nimport { WebhookEditRequest } from '../model/webhookEditRequest';\nimport { WebhookLogDetailsResponse } from '../model/webhookLogDetailsResponse';\nimport { WebhookResponse } from '../model/webhookResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsApplicationSettingsManagespanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Creates a user defined field / custom field\n     * \n     * @param body Data representing the user defined field / custom field being created\n     */\n    public createUDF(body?: UDFCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UDFResponse> {\n        return this.createUDFWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UDFResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Create a new webhook\n     * \n     * @param body \n     */\n    public createWebhook(body?: WebhookCreateRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<WebhookResponse> {\n        return this.createWebhookWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<WebhookResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete an API key\n     * \n     * @param apiKeyId \n     */\n    public deleteApiKey(apiKeyId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteApiKeyWithHttpInfo(apiKeyId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete the settings for the place benchmark defined by the benchmarkIndicator. Deletes all corresponding place benchmark values that were defined for that indicator. Updates user-defined autogroup membership for groups that contained filters for that indicator.\n     * \n     * @param benchmarkIndicator Indicator for the benchmark\n     */\n    public deletePlaceBenchmarkSetting(benchmarkIndicator: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deletePlaceBenchmarkSettingWithHttpInfo(benchmarkIndicator, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes a user defined field / custom field. Currently NO confirmation is required\n     * \n     * @param udfId The identifier for the user defined field / custom field being deleted\n     */\n    public deleteUDF(udfId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteUDFWithHttpInfo(udfId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete a webhook\n     * \n     * @param webhookId \n     */\n    public deleteWebhook(webhookId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteWebhookWithHttpInfo(webhookId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete webhook logs older than the number of days provided only if the number of logs per webhook is in excess of 100. 100 latest logs per webhook will always be maintained\n     * \n     * @param olderThanDays Defaults to 3\n     */\n    public deleteWebhookLogsOlderThan(olderThanDays?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteWebhookLogsOlderThanWithHttpInfo(olderThanDays, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit the name and description of an api key\n     * \n     * @param apiKeyId \n     * @param body \n     */\n    public editApiKey(apiKeyId: number, body?: ApiKeyEditRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ApiKeyResponse> {\n        return this.editApiKeyWithHttpInfo(apiKeyId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ApiKeyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits a cost category\n     * \n     * @param costCategoryId The identifier of the cost category to edit\n     * @param body Object containing settings to change\n     */\n    public editCostCategory(costCategoryId: number, body?: CostCategoryEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CostCategoryResponse> {\n        return this.editCostCategoryWithHttpInfo(costCategoryId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CostCategoryResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits a list of user defined fields / custom fields\n     * \n     * @param udfType Valid udfTypes include \\&quot;Account\\&quot;, \\&quot;Vendor\\&quot;, \\&quot;Place\\&quot;, \\&quot;Meter, \\&quot;ChannelVersion\\&quot;, \\&quot;Rate\\&quot;, \\&quot;Bill\\&quot;, \\&quot;EnergyProject\\&quot;, \\&quot;Collection\\&quot;, and \\&quot;EmissionSource\\&quot;\n     * @param body \n     */\n    public editCustomFields(udfType: string, body?: Array<UDFUpdate>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<UDFResponse>> {\n        return this.editCustomFieldsWithHttpInfo(udfType, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<UDFResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * The user can edit the category and name for each benchmark If a benchmark has not been configured, it is configured User cannot delete a benchmark from this endpoint If the benchmark dto is null or not passed the API will ignore it If the benchmark dto is not null, the category and name are required\n     * \n     * @param body Dto containing what to edit on benchmark\n     */\n    public editPlaceBenchmarkSettings(body?: BenchmarkSettingsEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BenchmarkSettingsResponse> {\n        return this.editPlaceBenchmarkSettingsWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BenchmarkSettingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit system settings\n     * \n     * @param body \n     */\n    public editSystemSettings(body?: SystemSettingsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<SystemSettingsResponse> {\n        return this.editSystemSettingsWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<SystemSettingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits a user defined field / custom field\n     * \n     * @param udfId \n     * @param body Data representing the UDF being edited\n     */\n    public editUDF(udfId: number, body?: UDFEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UDFResponse> {\n        return this.editUDFWithHttpInfo(udfId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UDFResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit an existing webhook\n     * \n     * @param webhookId \n     * @param body \n     */\n    public editWebhook(webhookId: number, body?: WebhookEditRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<WebhookResponse> {\n        return this.editWebhookWithHttpInfo(webhookId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<WebhookResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Fire a custom application action webhook\n     * \n     * @param webhookId The identifier for the webhook being fired\n     */\n    public processCustomAppAction(webhookId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<WebhookLogDetailsResponse> {\n        return this.processCustomAppActionWithHttpInfo(webhookId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<WebhookLogDetailsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Set the system reporting settings\n     * \n     * @param body \n     */\n    public setReportingSettings(body?: ReportingSettingRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ReportingSettingResponse> {\n        return this.setReportingSettingsWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ReportingSettingResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Update common and global use units\n     * \n     * @param body \n     */\n    public updateUseRollupUnits(body?: RollupUnitUpdate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<TaskResponse> {\n        return this.updateUseRollupUnitsWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<TaskResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Creates a user defined field / custom field\n     * \n     * @param body Data representing the user defined field / custom field being created\n     */\n    public createUDFWithHttpInfo(body?: UDFCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UDFResponse>> {\n        const path = this.basePath + '/api/v3/udf';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UDFResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Create a new webhook\n     * \n     * @param body \n     */\n    public createWebhookWithHttpInfo(body?: WebhookCreateRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<WebhookResponse>> {\n        const path = this.basePath + '/api/v3/webhook';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<WebhookResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Delete an API key\n     * \n     * @param apiKeyId \n     */\n    public deleteApiKeyWithHttpInfo(apiKeyId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/apiKey/${apiKeyId}'\n                    .replace('${' + 'apiKeyId' + '}', String(apiKeyId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'apiKeyId' is not null or undefined\n        if (apiKeyId === null || apiKeyId === undefined) {\n            throw new Error('Required parameter apiKeyId was null or undefined when calling deleteApiKey.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Delete the settings for the place benchmark defined by the benchmarkIndicator. Deletes all corresponding place benchmark values that were defined for that indicator. Updates user-defined autogroup membership for groups that contained filters for that indicator.\n     * \n     * @param benchmarkIndicator Indicator for the benchmark\n     */\n    public deletePlaceBenchmarkSettingWithHttpInfo(benchmarkIndicator: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/placeBenchmark/${benchmarkIndicator}/setting'\n                    .replace('${' + 'benchmarkIndicator' + '}', String(benchmarkIndicator));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'benchmarkIndicator' is not null or undefined\n        if (benchmarkIndicator === null || benchmarkIndicator === undefined) {\n            throw new Error('Required parameter benchmarkIndicator was null or undefined when calling deletePlaceBenchmarkSetting.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Deletes a user defined field / custom field. Currently NO confirmation is required\n     * \n     * @param udfId The identifier for the user defined field / custom field being deleted\n     */\n    public deleteUDFWithHttpInfo(udfId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/udf/${udfId}'\n                    .replace('${' + 'udfId' + '}', String(udfId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'udfId' is not null or undefined\n        if (udfId === null || udfId === undefined) {\n            throw new Error('Required parameter udfId was null or undefined when calling deleteUDF.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Delete a webhook\n     * \n     * @param webhookId \n     */\n    public deleteWebhookWithHttpInfo(webhookId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/webhook/${webhookId}'\n                    .replace('${' + 'webhookId' + '}', String(webhookId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'webhookId' is not null or undefined\n        if (webhookId === null || webhookId === undefined) {\n            throw new Error('Required parameter webhookId was null or undefined when calling deleteWebhook.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Delete webhook logs older than the number of days provided only if the number of logs per webhook is in excess of 100. 100 latest logs per webhook will always be maintained\n     * \n     * @param olderThanDays Defaults to 3\n     */\n    public deleteWebhookLogsOlderThanWithHttpInfo(olderThanDays?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202104/webhook/log';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (olderThanDays !== undefined) {\n            queryParameters = queryParameters.set('olderThanDays', <any>olderThanDays);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Edit the name and description of an api key\n     * \n     * @param apiKeyId \n     * @param body \n     */\n    public editApiKeyWithHttpInfo(apiKeyId: number, body?: ApiKeyEditRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ApiKeyResponse>> {\n        const path = this.basePath + '/api/v3/apiKey/${apiKeyId}'\n                    .replace('${' + 'apiKeyId' + '}', String(apiKeyId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'apiKeyId' is not null or undefined\n        if (apiKeyId === null || apiKeyId === undefined) {\n            throw new Error('Required parameter apiKeyId was null or undefined when calling editApiKey.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ApiKeyResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edits a cost category\n     * \n     * @param costCategoryId The identifier of the cost category to edit\n     * @param body Object containing settings to change\n     */\n    public editCostCategoryWithHttpInfo(costCategoryId: number, body?: CostCategoryEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CostCategoryResponse>> {\n        const path = this.basePath + '/api/v202405/costCategory/${costCategoryId}'\n                    .replace('${' + 'costCategoryId' + '}', String(costCategoryId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'costCategoryId' is not null or undefined\n        if (costCategoryId === null || costCategoryId === undefined) {\n            throw new Error('Required parameter costCategoryId was null or undefined when calling editCostCategory.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CostCategoryResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edits a list of user defined fields / custom fields\n     * \n     * @param udfType Valid udfTypes include \\&quot;Account\\&quot;, \\&quot;Vendor\\&quot;, \\&quot;Place\\&quot;, \\&quot;Meter, \\&quot;ChannelVersion\\&quot;, \\&quot;Rate\\&quot;, \\&quot;Bill\\&quot;, \\&quot;EnergyProject\\&quot;, \\&quot;Collection\\&quot;, and \\&quot;EmissionSource\\&quot;\n     * @param body \n     */\n    public editCustomFieldsWithHttpInfo(udfType: string, body?: Array<UDFUpdate>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<UDFResponse>>> {\n        const path = this.basePath + '/api/v3/udf/list/${udfType}'\n                    .replace('${' + 'udfType' + '}', String(udfType));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'udfType' is not null or undefined\n        if (udfType === null || udfType === undefined) {\n            throw new Error('Required parameter udfType was null or undefined when calling editCustomFields.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<UDFResponse>>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * The user can edit the category and name for each benchmark If a benchmark has not been configured, it is configured User cannot delete a benchmark from this endpoint If the benchmark dto is null or not passed the API will ignore it If the benchmark dto is not null, the category and name are required\n     * \n     * @param body Dto containing what to edit on benchmark\n     */\n    public editPlaceBenchmarkSettingsWithHttpInfo(body?: BenchmarkSettingsEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BenchmarkSettingsResponse>> {\n        const path = this.basePath + '/api/v3/placeBenchmark/setting';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BenchmarkSettingsResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edit system settings\n     * \n     * @param body \n     */\n    public editSystemSettingsWithHttpInfo(body?: SystemSettingsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<SystemSettingsResponse>> {\n        const path = this.basePath + '/api/v202405/admin/systemSettings';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<SystemSettingsResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edits a user defined field / custom field\n     * \n     * @param udfId \n     * @param body Data representing the UDF being edited\n     */\n    public editUDFWithHttpInfo(udfId: number, body?: UDFEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UDFResponse>> {\n        const path = this.basePath + '/api/v3/udf/${udfId}'\n                    .replace('${' + 'udfId' + '}', String(udfId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'udfId' is not null or undefined\n        if (udfId === null || udfId === undefined) {\n            throw new Error('Required parameter udfId was null or undefined when calling editUDF.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UDFResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edit an existing webhook\n     * \n     * @param webhookId \n     * @param body \n     */\n    public editWebhookWithHttpInfo(webhookId: number, body?: WebhookEditRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<WebhookResponse>> {\n        const path = this.basePath + '/api/v3/webhook/${webhookId}'\n                    .replace('${' + 'webhookId' + '}', String(webhookId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'webhookId' is not null or undefined\n        if (webhookId === null || webhookId === undefined) {\n            throw new Error('Required parameter webhookId was null or undefined when calling editWebhook.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<WebhookResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Fire a custom application action webhook\n     * \n     * @param webhookId The identifier for the webhook being fired\n     */\n    public processCustomAppActionWithHttpInfo(webhookId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<WebhookLogDetailsResponse>> {\n        const path = this.basePath + '/api/v3/admin/customapplicationaction/${webhookId}'\n                    .replace('${' + 'webhookId' + '}', String(webhookId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'webhookId' is not null or undefined\n        if (webhookId === null || webhookId === undefined) {\n            throw new Error('Required parameter webhookId was null or undefined when calling processCustomAppAction.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<WebhookLogDetailsResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Set the system reporting settings\n     * \n     * @param body \n     */\n    public setReportingSettingsWithHttpInfo(body?: ReportingSettingRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ReportingSettingResponse>> {\n        const path = this.basePath + '/api/v202305/admin/reportingSettings';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ReportingSettingResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Update common and global use units\n     * \n     * @param body \n     */\n    public updateUseRollupUnitsWithHttpInfo(body?: RollupUnitUpdate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<TaskResponse>> {\n        const path = this.basePath + '/api/v3/unit/rollup';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<TaskResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { ApiKeyCreateRequest } from '../model/apiKeyCreateRequest';\nimport { ApiKeyCreateResponse } from '../model/apiKeyCreateResponse';\nimport { ApiKeyResponse } from '../model/apiKeyResponse';\nimport { LicenseRequest } from '../model/licenseRequest';\nimport { LicenseResponse } from '../model/licenseResponse';\nimport { WebhookEventTypeChild } from '../model/webhookEventTypeChild';\nimport { WebhookLogDetailsResponse } from '../model/webhookLogDetailsResponse';\nimport { WebhookLogResponse } from '../model/webhookLogResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsApplicationSettingsViewspanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Create a new API key\n     * \n     * @param body \n     */\n    public createApiKey(body?: ApiKeyCreateRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ApiKeyCreateResponse> {\n        return this.createApiKeyWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ApiKeyCreateResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit the license details.\n     * \n     * @param body \n     */\n    public editLicenseDetails(body?: LicenseRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<LicenseResponse> {\n        return this.editLicenseDetailsWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<LicenseResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get an API key\n     * \n     * @param apiKeyId \n     */\n    public getApiKey(apiKeyId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ApiKeyResponse> {\n        return this.getApiKeyWithHttpInfo(apiKeyId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ApiKeyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a list of all available API keys\n     * \n     * @param filter \n     */\n    public getApiKeys(filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<ApiKeyResponse>> {\n        return this.getApiKeysWithHttpInfo(filter, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<ApiKeyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get license details.\n     * \n     */\n    public getLicenseDetails(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<LicenseResponse> {\n        return this.getLicenseDetailsWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<LicenseResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get webhook event types\n     * \n     */\n    public getWebhookEventTypes(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<WebhookEventTypeChild>> {\n        return this.getWebhookEventTypesWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<WebhookEventTypeChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get details for a webhook log\n     * \n     * @param webhookId \n     * @param webhookLogId \n     */\n    public getWebhookLogDetails(webhookId: number, webhookLogId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<WebhookLogDetailsResponse> {\n        return this.getWebhookLogDetailsWithHttpInfo(webhookId, webhookLogId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<WebhookLogDetailsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a list of webhook event logs\n     * \n     * @param webhookId \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getWebhookLogs(webhookId: number, filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<WebhookLogResponse>> {\n        return this.getWebhookLogsWithHttpInfo(webhookId, filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<WebhookLogResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Create a new API key\n     * \n     * @param body \n     */\n    public createApiKeyWithHttpInfo(body?: ApiKeyCreateRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ApiKeyCreateResponse>> {\n        const path = this.basePath + '/api/v3/apiKey';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ApiKeyCreateResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Edit the license details.\n     * \n     * @param body \n     */\n    public editLicenseDetailsWithHttpInfo(body?: LicenseRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<LicenseResponse>> {\n        const path = this.basePath + '/api/v3/admin/license';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<LicenseResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Get an API key\n     * \n     * @param apiKeyId \n     */\n    public getApiKeyWithHttpInfo(apiKeyId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ApiKeyResponse>> {\n        const path = this.basePath + '/api/v3/apiKey/${apiKeyId}'\n                    .replace('${' + 'apiKeyId' + '}', String(apiKeyId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'apiKeyId' is not null or undefined\n        if (apiKeyId === null || apiKeyId === undefined) {\n            throw new Error('Required parameter apiKeyId was null or undefined when calling getApiKey.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ApiKeyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a list of all available API keys\n     * \n     * @param filter \n     */\n    public getApiKeysWithHttpInfo(filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<ApiKeyResponse>>> {\n        const path = this.basePath + '/api/v3/apiKey';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<ApiKeyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get license details.\n     * \n     */\n    public getLicenseDetailsWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<LicenseResponse>> {\n        const path = this.basePath + '/api/v3/admin/license';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<LicenseResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get webhook event types\n     * \n     */\n    public getWebhookEventTypesWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<WebhookEventTypeChild>>> {\n        const path = this.basePath + '/api/v3/webhook/eventType';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<WebhookEventTypeChild>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get details for a webhook log\n     * \n     * @param webhookId \n     * @param webhookLogId \n     */\n    public getWebhookLogDetailsWithHttpInfo(webhookId: number, webhookLogId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<WebhookLogDetailsResponse>> {\n        const path = this.basePath + '/api/v3/webhook/${webhookId}/log/${webhookLogId}/detail'\n                    .replace('${' + 'webhookId' + '}', String(webhookId))\n                    .replace('${' + 'webhookLogId' + '}', String(webhookLogId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'webhookId' is not null or undefined\n        if (webhookId === null || webhookId === undefined) {\n            throw new Error('Required parameter webhookId was null or undefined when calling getWebhookLogDetails.');\n        }\n        // verify required parameter 'webhookLogId' is not null or undefined\n        if (webhookLogId === null || webhookLogId === undefined) {\n            throw new Error('Required parameter webhookLogId was null or undefined when calling getWebhookLogDetails.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<WebhookLogDetailsResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a list of webhook event logs\n     * \n     * @param webhookId \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getWebhookLogsWithHttpInfo(webhookId: number, filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<WebhookLogResponse>>> {\n        const path = this.basePath + '/api/v3/webhook/${webhookId}/log'\n                    .replace('${' + 'webhookId' + '}', String(webhookId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'webhookId' is not null or undefined\n        if (webhookId === null || webhookId === undefined) {\n            throw new Error('Required parameter webhookId was null or undefined when calling getWebhookLogs.');\n        }\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<WebhookLogResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { BillActionApprove } from '../model/billActionApprove';\nimport { ListActionApprove } from '../model/listActionApprove';\nimport { UpdateResult } from '../model/updateResult';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsApproveBillsManagespanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Approve/unapprove account bills\n     * \n     * @param accountId The account to approve/unapprove all bills\n     * @param body Boolean representing approve flag\n     */\n    public accountBillListApprove(accountId: number, body?: ListActionApprove, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.accountBillListApproveWithHttpInfo(accountId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Approve/unapprove bill list\n     * \n     * @param listId The list identifier\n     * @param body Boolean representing approve flag\n     */\n    public approveBillList(listId: number, body?: ListActionApprove, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.approveBillListWithHttpInfo(listId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Update approved flag for the given billIDs\n     * \n     * @param body approve action\n     */\n    public billActionApprove(body?: BillActionApprove, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.billActionApproveWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Approve/unapprove meter bills\n     * \n     * @param meterId The meter to approve/unapprove all bills\n     * @param body Boolean representing approve flag\n     */\n    public meterBillListApprove(meterId: number, body?: ListActionApprove, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.meterBillListApproveWithHttpInfo(meterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Approve/unapprove account bills\n     * \n     * @param accountId The account to approve/unapprove all bills\n     * @param body Boolean representing approve flag\n     */\n    public accountBillListApproveWithHttpInfo(accountId: number, body?: ListActionApprove, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/list/bill/approve'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling accountBillListApprove.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Approve/unapprove bill list\n     * \n     * @param listId The list identifier\n     * @param body Boolean representing approve flag\n     */\n    public approveBillListWithHttpInfo(listId: number, body?: ListActionApprove, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/list/${listId}/approve'\n                    .replace('${' + 'listId' + '}', String(listId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'listId' is not null or undefined\n        if (listId === null || listId === undefined) {\n            throw new Error('Required parameter listId was null or undefined when calling approveBillList.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Update approved flag for the given billIDs\n     * \n     * @param body approve action\n     */\n    public billActionApproveWithHttpInfo(body?: BillActionApprove, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/bill/approve';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Approve/unapprove meter bills\n     * \n     * @param meterId The meter to approve/unapprove all bills\n     * @param body Boolean representing approve flag\n     */\n    public meterBillListApproveWithHttpInfo(meterId: number, body?: ListActionApprove, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/list/bill/approve'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling meterBillListApprove.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { BulkBaselineProcessorRequest } from '../model/bulkBaselineProcessorRequest';\nimport { CostAvoidanceTask } from '../model/costAvoidanceTask';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsBaselineEngineRunspanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Regenerate cost avoidance baseline for the meters that match the filter conditions and then reprocess their savings\n     * \n     * @param body Settings and filter conditions for baseline processing\n     */\n    public bulkGenerateBaseline(body?: BulkBaselineProcessorRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CostAvoidanceTask> {\n        return this.bulkGenerateBaselineWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CostAvoidanceTask>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Regenerate cost avoidance baseline for the meters that match the filter conditions and then reprocess their savings\n     * \n     * @param body Settings and filter conditions for baseline processing\n     */\n    public bulkGenerateBaselineWithHttpInfo(body?: BulkBaselineProcessorRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CostAvoidanceTask>> {\n        const path = this.basePath + '/api/v3/savings/baseline/exec';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CostAvoidanceTask>(RequestMethod.Post, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { BillLineTypeMappingResponse } from '../model/billLineTypeMappingResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsBillCAPtureViewspanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Retrieves a list of bill line type mappings\n     * \n     */\n    public getBillLineTypeMappings(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BillLineTypeMappingResponse>> {\n        return this.getBillLineTypeMappingsWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BillLineTypeMappingResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Retrieves a list of bill line type mappings\n     * \n     */\n    public getBillLineTypeMappingsWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BillLineTypeMappingResponse>>> {\n        const path = this.basePath + '/api/v202406/bill/billLineTypeMapping';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BillLineTypeMappingResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { AccountBillAccountChargeSplitSettingsResponse } from '../model/accountBillAccountChargeSplitSettingsResponse';\nimport { AuditSettingsRequest } from '../model/auditSettingsRequest';\nimport { AuditSettingsResponse } from '../model/auditSettingsResponse';\nimport { BillAccountChargeSplitMethodRequest } from '../model/billAccountChargeSplitMethodRequest';\nimport { BillAccountChargeSplitMethodResponse } from '../model/billAccountChargeSplitMethodResponse';\nimport { VendorBillAccountChargeSplitSettingsResponse } from '../model/vendorBillAccountChargeSplitSettingsResponse';\nimport { WorkflowSettingsRequest } from '../model/workflowSettingsRequest';\nimport { WorkflowSettingsResponse } from '../model/workflowSettingsResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsBillWorkflowSettingsManagespanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Deletes a specific account&#39;s setting to split account charges on bill import\n     * \n     * @param accountId Account identifier\n     */\n    public deleteAccountBillAccountChargeSplitSettings(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteAccountBillAccountChargeSplitSettingsWithHttpInfo(accountId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes a specific vendor&#39;s setting to split account charges on bill import\n     * \n     * @param vendorId Vendor identifier\n     */\n    public deleteVendorBillAccountChargeSplitSettings(vendorId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteVendorBillAccountChargeSplitSettingsWithHttpInfo(vendorId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits a specific account&#39;s setting to split account charges on bill import If a rule does not currently exist for this account it is created otherwise it is updated\n     * \n     * @param accountId Account identifier\n     * @param body \n     */\n    public editAccountBillAccountChargeSplitSettings(accountId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<AccountBillAccountChargeSplitSettingsResponse> {\n        return this.editAccountBillAccountChargeSplitSettingsWithHttpInfo(accountId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<AccountBillAccountChargeSplitSettingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit the method used to split account charges on bill import\n     * \n     * @param body Method used to split account charges on bill import\n     */\n    public editBillAccountChargeSplitMethod(body?: BillAccountChargeSplitMethodRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BillAccountChargeSplitMethodResponse> {\n        return this.editBillAccountChargeSplitMethodWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BillAccountChargeSplitMethodResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits a specific vendor&#39;s setting to split account charges on bill import If a rule does not currently exist for this vendor it is created otherwise it is updated\n     * \n     * @param vendorId Vendor identifier\n     * @param body \n     */\n    public editVendorBillAccountChargeSplitSettings(vendorId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<VendorBillAccountChargeSplitSettingsResponse> {\n        return this.editVendorBillAccountChargeSplitSettingsWithHttpInfo(vendorId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<VendorBillAccountChargeSplitSettingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Update bill workflow settings\n     * \n     * @param body All workflow settings\n     */\n    public editWorkflow(body?: WorkflowSettingsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<WorkflowSettingsResponse> {\n        return this.editWorkflowWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<WorkflowSettingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Update audit settings\n     *  __Setting Status Descriptions:__  | Setting Status | Description | | -------------- | ----------- | | Check          | If this audit fails affected bills are flagged  | | Hold           | If this audit fails affected bills are flagged and held from export  | | Skip           | This audit is skipped  |\n     * @param body The new state of the audit settings\n     */\n    public updateAuditSettings(body?: AuditSettingsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<AuditSettingsResponse> {\n        return this.updateAuditSettingsWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<AuditSettingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Deletes a specific account&#39;s setting to split account charges on bill import\n     * \n     * @param accountId Account identifier\n     */\n    public deleteAccountBillAccountChargeSplitSettingsWithHttpInfo(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202407/billAccountChargeSplit/account/${accountId}'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling deleteAccountBillAccountChargeSplitSettings.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Deletes a specific vendor&#39;s setting to split account charges on bill import\n     * \n     * @param vendorId Vendor identifier\n     */\n    public deleteVendorBillAccountChargeSplitSettingsWithHttpInfo(vendorId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202407/billAccountChargeSplit/vendor/${vendorId}'\n                    .replace('${' + 'vendorId' + '}', String(vendorId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'vendorId' is not null or undefined\n        if (vendorId === null || vendorId === undefined) {\n            throw new Error('Required parameter vendorId was null or undefined when calling deleteVendorBillAccountChargeSplitSettings.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Edits a specific account&#39;s setting to split account charges on bill import If a rule does not currently exist for this account it is created otherwise it is updated\n     * \n     * @param accountId Account identifier\n     * @param body \n     */\n    public editAccountBillAccountChargeSplitSettingsWithHttpInfo(accountId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<AccountBillAccountChargeSplitSettingsResponse>> {\n        const path = this.basePath + '/api/v202407/billAccountChargeSplit/account/${accountId}'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling editAccountBillAccountChargeSplitSettings.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<AccountBillAccountChargeSplitSettingsResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edit the method used to split account charges on bill import\n     * \n     * @param body Method used to split account charges on bill import\n     */\n    public editBillAccountChargeSplitMethodWithHttpInfo(body?: BillAccountChargeSplitMethodRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BillAccountChargeSplitMethodResponse>> {\n        const path = this.basePath + '/api/v202407/billAccountChargeSplit/method';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BillAccountChargeSplitMethodResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edits a specific vendor&#39;s setting to split account charges on bill import If a rule does not currently exist for this vendor it is created otherwise it is updated\n     * \n     * @param vendorId Vendor identifier\n     * @param body \n     */\n    public editVendorBillAccountChargeSplitSettingsWithHttpInfo(vendorId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<VendorBillAccountChargeSplitSettingsResponse>> {\n        const path = this.basePath + '/api/v202407/billAccountChargeSplit/vendor/${vendorId}'\n                    .replace('${' + 'vendorId' + '}', String(vendorId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'vendorId' is not null or undefined\n        if (vendorId === null || vendorId === undefined) {\n            throw new Error('Required parameter vendorId was null or undefined when calling editVendorBillAccountChargeSplitSettings.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<VendorBillAccountChargeSplitSettingsResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Update bill workflow settings\n     * \n     * @param body All workflow settings\n     */\n    public editWorkflowWithHttpInfo(body?: WorkflowSettingsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<WorkflowSettingsResponse>> {\n        const path = this.basePath + '/api/v202410/workflow';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<WorkflowSettingsResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Update audit settings\n     *  __Setting Status Descriptions:__  | Setting Status | Description | | -------------- | ----------- | | Check          | If this audit fails affected bills are flagged  | | Hold           | If this audit fails affected bills are flagged and held from export  | | Skip           | This audit is skipped  |\n     * @param body The new state of the audit settings\n     */\n    public updateAuditSettingsWithHttpInfo(body?: AuditSettingsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<AuditSettingsResponse>> {\n        const path = this.basePath + '/api/v202506/audit';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<AuditSettingsResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { AccountBillAccountChargeSplitSettingsResponse } from '../model/accountBillAccountChargeSplitSettingsResponse';\nimport { BillAccountChargeSplitMethodResponse } from '../model/billAccountChargeSplitMethodResponse';\nimport { BillAccountChargeSplitSettingsResponse } from '../model/billAccountChargeSplitSettingsResponse';\nimport { VendorBillAccountChargeSplitSettingsResponse } from '../model/vendorBillAccountChargeSplitSettingsResponse';\nimport { WorkflowSettingsResponse } from '../model/workflowSettingsResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsBillWorkflowSettingsViewspanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Retrieves a specific account&#39;s settings to split account charges on bill import\n     * \n     * @param accountId Account identifier\n     */\n    public getAccountBillAccountChargeSplitSettings(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<AccountBillAccountChargeSplitSettingsResponse> {\n        return this.getAccountBillAccountChargeSplitSettingsWithHttpInfo(accountId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<AccountBillAccountChargeSplitSettingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves the method used to split account charges on bill import\n     * \n     */\n    public getBillAccountChargeSplitMethod(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BillAccountChargeSplitMethodResponse> {\n        return this.getBillAccountChargeSplitMethodWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BillAccountChargeSplitMethodResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all settings used to split account charges on bill import Note: When filtering by vendor, only settings that apply to all vendor accounts (account null) will be returned\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getBillAccountChargeSplitSettings(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BillAccountChargeSplitSettingsResponse> {\n        return this.getBillAccountChargeSplitSettingsWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BillAccountChargeSplitSettingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves a specific vendor&#39;s settings to split account charges on bill import\n     * \n     * @param vendorId Vendor identifier\n     */\n    public getVendorBillAccountChargeSplitSettings(vendorId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<VendorBillAccountChargeSplitSettingsResponse> {\n        return this.getVendorBillAccountChargeSplitSettingsWithHttpInfo(vendorId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<VendorBillAccountChargeSplitSettingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get bill workflow settings\n     * \n     */\n    public getWorkflow(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<WorkflowSettingsResponse> {\n        return this.getWorkflowWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<WorkflowSettingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Retrieves a specific account&#39;s settings to split account charges on bill import\n     * \n     * @param accountId Account identifier\n     */\n    public getAccountBillAccountChargeSplitSettingsWithHttpInfo(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<AccountBillAccountChargeSplitSettingsResponse>> {\n        const path = this.basePath + '/api/v202407/billAccountChargeSplit/account/${accountId}'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling getAccountBillAccountChargeSplitSettings.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<AccountBillAccountChargeSplitSettingsResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves the method used to split account charges on bill import\n     * \n     */\n    public getBillAccountChargeSplitMethodWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BillAccountChargeSplitMethodResponse>> {\n        const path = this.basePath + '/api/v202407/billAccountChargeSplit/method';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BillAccountChargeSplitMethodResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all settings used to split account charges on bill import Note: When filtering by vendor, only settings that apply to all vendor accounts (account null) will be returned\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getBillAccountChargeSplitSettingsWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BillAccountChargeSplitSettingsResponse>> {\n        const path = this.basePath + '/api/v202407/billAccountChargeSplit';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BillAccountChargeSplitSettingsResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves a specific vendor&#39;s settings to split account charges on bill import\n     * \n     * @param vendorId Vendor identifier\n     */\n    public getVendorBillAccountChargeSplitSettingsWithHttpInfo(vendorId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<VendorBillAccountChargeSplitSettingsResponse>> {\n        const path = this.basePath + '/api/v202407/billAccountChargeSplit/vendor/${vendorId}'\n                    .replace('${' + 'vendorId' + '}', String(vendorId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'vendorId' is not null or undefined\n        if (vendorId === null || vendorId === undefined) {\n            throw new Error('Required parameter vendorId was null or undefined when calling getVendorBillAccountChargeSplitSettings.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<VendorBillAccountChargeSplitSettingsResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get bill workflow settings\n     * \n     */\n    public getWorkflowWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<WorkflowSettingsResponse>> {\n        const path = this.basePath + '/api/v3/workflow';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<WorkflowSettingsResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { BatchCreate } from '../model/batchCreate';\nimport { BatchEdit } from '../model/batchEdit';\nimport { BatchResponse } from '../model/batchResponse';\nimport { BillCreate } from '../model/billCreate';\nimport { BillEntryResponse } from '../model/billEntryResponse';\nimport { BillIdResponse } from '../model/billIdResponse';\nimport { BillImportProfileRequest } from '../model/billImportProfileRequest';\nimport { BillImportProfileResponse } from '../model/billImportProfileResponse';\nimport { BillImportRequest } from '../model/billImportRequest';\nimport { BillKickoutImportRequest } from '../model/billKickoutImportRequest';\nimport { GuidResponse } from '../model/guidResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsBillsAndBatchesCreatespanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * This endpoint allows the import of an EnergyCAP Advanced or a profile mapped file. The file can be comma separated file (CSV/DAT/TXT) or EXCEL (XLSX) or a collection of files (ZIP). The file should be base64 encoded with a UTF8 character set.\n     * \n     * @param body DTO containing the data to import, filename with extension, optional profileCode to map input file to advanced format, optional batch settings, optional import note/comment, and optional properties to automatically resolve audit failures and reason for resolution\n     */\n    public billImport(body?: BillImportRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<GuidResponse> {\n        return this.billImportWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<GuidResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * \n     * \n     * @param batchId \n     */\n    public closeBatch(batchId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BatchResponse> {\n        return this.closeBatchWithHttpInfo(batchId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BatchResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Create a new bill\n     * Creates a bill. The created bill gets audited. If any audits fail, the bill will get flagged. If the audit setting for any of the failed audits is set to Fail and Hold, the bill will be set as \\&quot;Hold from Accounting Export\\&quot; If saveAsResolved property is set to true, the flagged bill will be automatically resolved and Released for Accounting Export\n     * @param saveAsResolved Controls whether or not any failed audits automatically get marked as resolved\n     * @param comment Optional comment to explain why the audit is being auto resolved\n     * @param body \n     */\n    public createBill(saveAsResolved?: boolean, comment?: string, body?: BillCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BillIdResponse> {\n        return this.createBillWithHttpInfo(saveAsResolved, comment, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BillIdResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes a bill import profile\n     * \n     * @param profileId The identifier for the profile being deleted\n     */\n    public deleteBillImportProfile(profileId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteBillImportProfileWithHttpInfo(profileId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * \n     * \n     * @param batchId \n     * @param body \n     */\n    public editBatch(batchId: number, body?: BatchEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BatchResponse> {\n        return this.editBatchWithHttpInfo(batchId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BatchResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit a bill import profile\n     * \n     * @param profileId The identifier for the profile being edited\n     * @param body The details about the profile being edited\n     */\n    public editBillImportProfile(profileId: number, body?: BillImportProfileRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BillImportProfileResponse> {\n        return this.editBillImportProfileWithHttpInfo(profileId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BillImportProfileResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all data necessary to load the bill entry screen\n     * \n     * @param accountId \n     * @param beginDate \n     * @param batchId \n     */\n    public getBillEntryData(accountId: number, beginDate?: Date, batchId?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BillEntryResponse> {\n        return this.getBillEntryDataWithHttpInfo(accountId, beginDate, batchId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BillEntryResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a bill import profile\n     * \n     * @param profileId The identifier for the profile to get\n     */\n    public getBillImportProfile(profileId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BillImportProfileResponse> {\n        return this.getBillImportProfileWithHttpInfo(profileId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BillImportProfileResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get all bill import profiles\n     * \n     */\n    public getBillImportProfiles(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BillImportProfileResponse>> {\n        return this.getBillImportProfilesWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BillImportProfileResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * This endpoint allows the reimport of an EnergyCAP. All kickout files generated from the import will be zipped and reimported as a single task.\n     * \n     * @param taskGuid The taskGuid should be a bill import task with a status of completed with kickouts.\n     * @param body DTO containing optional batch settings, optional import note/comment, and optional properties to automatically resolve audit failures and reason for resolution\n     */\n    public importBillImportTaskKickouts(taskGuid: string, body?: BillKickoutImportRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<GuidResponse> {\n        return this.importBillImportTaskKickoutsWithHttpInfo(taskGuid, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<GuidResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Opens a new batch. If there are other open batches for this user,  and CloseExistingBatch is true, closes those batches before creating the new batch.  Returns the batch response DTO.\n     * \n     * @param body The batch to create\n     */\n    public openBatch(body?: BatchCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BatchResponse> {\n        return this.openBatchWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BatchResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Upload a file representing a bill image. The bill image file extension must match the settings in system data &#39;webbillimageext&#39;.\n     * \n     * @param billId The Bill ID associated with the file being uploaded.\n     * @param fileName The name of the file containing the bill image\n     * @param body Binary data containing the bill image\n     */\n    public uploadBillImage(billId: number, fileName?: string, body?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<string> {\n        return this.uploadBillImageWithHttpInfo(billId, fileName, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<string>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Creates a bill import profile\n     * \n     * @param body The details about the profile being created\n     */\n    public writeBillImportProfile(body?: BillImportProfileRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BillImportProfileResponse> {\n        return this.writeBillImportProfileWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BillImportProfileResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * This endpoint allows the import of an EnergyCAP Advanced or a profile mapped file. The file can be comma separated file (CSV/DAT/TXT) or EXCEL (XLSX) or a collection of files (ZIP). The file should be base64 encoded with a UTF8 character set.\n     * \n     * @param body DTO containing the data to import, filename with extension, optional profileCode to map input file to advanced format, optional batch settings, optional import note/comment, and optional properties to automatically resolve audit failures and reason for resolution\n     */\n    public billImportWithHttpInfo(body?: BillImportRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<GuidResponse>> {\n        const path = this.basePath + '/api/v3/import/bill';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<GuidResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * \n     * \n     * @param batchId \n     */\n    public closeBatchWithHttpInfo(batchId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BatchResponse>> {\n        const path = this.basePath + '/api/v3/batch/close/${batchId}'\n                    .replace('${' + 'batchId' + '}', String(batchId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'batchId' is not null or undefined\n        if (batchId === null || batchId === undefined) {\n            throw new Error('Required parameter batchId was null or undefined when calling closeBatch.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BatchResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Create a new bill\n     * Creates a bill. The created bill gets audited. If any audits fail, the bill will get flagged. If the audit setting for any of the failed audits is set to Fail and Hold, the bill will be set as \\&quot;Hold from Accounting Export\\&quot; If saveAsResolved property is set to true, the flagged bill will be automatically resolved and Released for Accounting Export\n     * @param saveAsResolved Controls whether or not any failed audits automatically get marked as resolved\n     * @param comment Optional comment to explain why the audit is being auto resolved\n     * @param body \n     */\n    public createBillWithHttpInfo(saveAsResolved?: boolean, comment?: string, body?: BillCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BillIdResponse>> {\n        const path = this.basePath + '/api/v3/bill';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (saveAsResolved !== undefined) {\n            queryParameters = queryParameters.set('saveAsResolved', <any>saveAsResolved);\n        }\n\n        if (comment !== undefined) {\n            queryParameters = queryParameters.set('comment', <any>comment);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BillIdResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Deletes a bill import profile\n     * \n     * @param profileId The identifier for the profile being deleted\n     */\n    public deleteBillImportProfileWithHttpInfo(profileId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/import/bill/profile/${profileId}'\n                    .replace('${' + 'profileId' + '}', String(profileId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'profileId' is not null or undefined\n        if (profileId === null || profileId === undefined) {\n            throw new Error('Required parameter profileId was null or undefined when calling deleteBillImportProfile.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * \n     * \n     * @param batchId \n     * @param body \n     */\n    public editBatchWithHttpInfo(batchId: number, body?: BatchEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BatchResponse>> {\n        const path = this.basePath + '/api/v3/batch/${batchId}'\n                    .replace('${' + 'batchId' + '}', String(batchId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'batchId' is not null or undefined\n        if (batchId === null || batchId === undefined) {\n            throw new Error('Required parameter batchId was null or undefined when calling editBatch.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BatchResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edit a bill import profile\n     * \n     * @param profileId The identifier for the profile being edited\n     * @param body The details about the profile being edited\n     */\n    public editBillImportProfileWithHttpInfo(profileId: number, body?: BillImportProfileRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BillImportProfileResponse>> {\n        const path = this.basePath + '/api/v3/import/bill/profile/${profileId}'\n                    .replace('${' + 'profileId' + '}', String(profileId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'profileId' is not null or undefined\n        if (profileId === null || profileId === undefined) {\n            throw new Error('Required parameter profileId was null or undefined when calling editBillImportProfile.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BillImportProfileResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all data necessary to load the bill entry screen\n     * \n     * @param accountId \n     * @param beginDate \n     * @param batchId \n     */\n    public getBillEntryDataWithHttpInfo(accountId: number, beginDate?: Date, batchId?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BillEntryResponse>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/billEntry'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling getBillEntryData.');\n        }\n        if (beginDate !== undefined) {\n            queryParameters = queryParameters.set('beginDate', <any>beginDate.toISOString());\n        }\n\n        if (batchId !== undefined) {\n            queryParameters = queryParameters.set('batchId', <any>batchId);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BillEntryResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a bill import profile\n     * \n     * @param profileId The identifier for the profile to get\n     */\n    public getBillImportProfileWithHttpInfo(profileId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BillImportProfileResponse>> {\n        const path = this.basePath + '/api/v3/import/bill/profile/${profileId}'\n                    .replace('${' + 'profileId' + '}', String(profileId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'profileId' is not null or undefined\n        if (profileId === null || profileId === undefined) {\n            throw new Error('Required parameter profileId was null or undefined when calling getBillImportProfile.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BillImportProfileResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get all bill import profiles\n     * \n     */\n    public getBillImportProfilesWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BillImportProfileResponse>>> {\n        const path = this.basePath + '/api/v3/import/bill/profile';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BillImportProfileResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * This endpoint allows the reimport of an EnergyCAP. All kickout files generated from the import will be zipped and reimported as a single task.\n     * \n     * @param taskGuid The taskGuid should be a bill import task with a status of completed with kickouts.\n     * @param body DTO containing optional batch settings, optional import note/comment, and optional properties to automatically resolve audit failures and reason for resolution\n     */\n    public importBillImportTaskKickoutsWithHttpInfo(taskGuid: string, body?: BillKickoutImportRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<GuidResponse>> {\n        const path = this.basePath + '/api/v202401/import/bill/task/${taskGuid}/kickout'\n                    .replace('${' + 'taskGuid' + '}', String(taskGuid));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'taskGuid' is not null or undefined\n        if (taskGuid === null || taskGuid === undefined) {\n            throw new Error('Required parameter taskGuid was null or undefined when calling importBillImportTaskKickouts.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<GuidResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Opens a new batch. If there are other open batches for this user,  and CloseExistingBatch is true, closes those batches before creating the new batch.  Returns the batch response DTO.\n     * \n     * @param body The batch to create\n     */\n    public openBatchWithHttpInfo(body?: BatchCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BatchResponse>> {\n        const path = this.basePath + '/api/v3/batch';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BatchResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Upload a file representing a bill image. The bill image file extension must match the settings in system data &#39;webbillimageext&#39;.\n     * \n     * @param billId The Bill ID associated with the file being uploaded.\n     * @param fileName The name of the file containing the bill image\n     * @param body Binary data containing the bill image\n     */\n    public uploadBillImageWithHttpInfo(billId: number, fileName?: string, body?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<string>> {\n        const path = this.basePath + '/api/v202506/bill/${billId}/billImage'\n                    .replace('${' + 'billId' + '}', String(billId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'billId' is not null or undefined\n        if (billId === null || billId === undefined) {\n            throw new Error('Required parameter billId was null or undefined when calling uploadBillImage.');\n        }\n        if (fileName !== undefined) {\n            queryParameters = queryParameters.set('fileName', <any>fileName);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json', \n            'text/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/octet-stream'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<string>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Creates a bill import profile\n     * \n     * @param body The details about the profile being created\n     */\n    public writeBillImportProfileWithHttpInfo(body?: BillImportProfileRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BillImportProfileResponse>> {\n        const path = this.basePath + '/api/v3/import/bill/profile';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BillImportProfileResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { BillActionDelete } from '../model/billActionDelete';\nimport { BillDeleteActionResult } from '../model/billDeleteActionResult';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsBillsAndBatchesDeletespanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Delete all bills for account\n     * \n     * @param accountId The account to delete all bills from\n     */\n    public accountBillListDeleteBills(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BillDeleteActionResult> {\n        return this.accountBillListDeleteBillsWithHttpInfo(accountId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BillDeleteActionResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete given billIDs\n     * \n     * @param body \n     */\n    public billActionDelete(body?: BillActionDelete, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BillDeleteActionResult> {\n        return this.billActionDeleteWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BillDeleteActionResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * \n     * \n     * @param batchId \n     */\n    public deleteBatch(batchId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteBatchWithHttpInfo(batchId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete all bills in a bill list\n     * \n     * @param listId The list identifier\n     */\n    public deleteBillsInBillList(listId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BillDeleteActionResult> {\n        return this.deleteBillsInBillListWithHttpInfo(listId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BillDeleteActionResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete all bills for meter\n     * \n     * @param meterId The meter to delete all bills from\n     */\n    public meterBillListDeleteBills(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BillDeleteActionResult> {\n        return this.meterBillListDeleteBillsWithHttpInfo(meterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BillDeleteActionResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Delete all bills for account\n     * \n     * @param accountId The account to delete all bills from\n     */\n    public accountBillListDeleteBillsWithHttpInfo(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BillDeleteActionResult>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/list/bill/data'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling accountBillListDeleteBills.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BillDeleteActionResult>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Delete given billIDs\n     * \n     * @param body \n     */\n    public billActionDeleteWithHttpInfo(body?: BillActionDelete, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BillDeleteActionResult>> {\n        const path = this.basePath + '/api/v3/bill/delete';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BillDeleteActionResult>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * \n     * \n     * @param batchId \n     */\n    public deleteBatchWithHttpInfo(batchId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/batch/${batchId}'\n                    .replace('${' + 'batchId' + '}', String(batchId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'batchId' is not null or undefined\n        if (batchId === null || batchId === undefined) {\n            throw new Error('Required parameter batchId was null or undefined when calling deleteBatch.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Delete all bills in a bill list\n     * \n     * @param listId The list identifier\n     */\n    public deleteBillsInBillListWithHttpInfo(listId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BillDeleteActionResult>> {\n        const path = this.basePath + '/api/v3/list/${listId}/data'\n                    .replace('${' + 'listId' + '}', String(listId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'listId' is not null or undefined\n        if (listId === null || listId === undefined) {\n            throw new Error('Required parameter listId was null or undefined when calling deleteBillsInBillList.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BillDeleteActionResult>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Delete all bills for meter\n     * \n     * @param meterId The meter to delete all bills from\n     */\n    public meterBillListDeleteBillsWithHttpInfo(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BillDeleteActionResult>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/list/bill/data'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling meterBillListDeleteBills.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BillDeleteActionResult>(RequestMethod.Delete, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { BillActionCustom } from '../model/billActionCustom';\nimport { BillActionHeaderUpdate } from '../model/billActionHeaderUpdate';\nimport { BillActionVoid } from '../model/billActionVoid';\nimport { BillEdit } from '../model/billEdit';\nimport { BillHeaderUpdate } from '../model/billHeaderUpdate';\nimport { BillIdResponse } from '../model/billIdResponse';\nimport { BillPaymentDetailsFileResponse } from '../model/billPaymentDetailsFileResponse';\nimport { BillPaymentDetailsOptionalItem } from '../model/billPaymentDetailsOptionalItem';\nimport { BillPaymentDetailsOptionalResponse } from '../model/billPaymentDetailsOptionalResponse';\nimport { BillPaymentEventCreate } from '../model/billPaymentEventCreate';\nimport { BillPaymentEventResponse } from '../model/billPaymentEventResponse';\nimport { BillReversalRequest } from '../model/billReversalRequest';\nimport { DistributeAccountChargesBase } from '../model/distributeAccountChargesBase';\nimport { DistributeAccountChargesToBillsRequest } from '../model/distributeAccountChargesToBillsRequest';\nimport { ListActionCustom } from '../model/listActionCustom';\nimport { ListActionReverse } from '../model/listActionReverse';\nimport { ListActionVoid } from '../model/listActionVoid';\nimport { UDFFieldChild } from '../model/uDFFieldChild';\nimport { UDFValue } from '../model/uDFValue';\nimport { UpdateResult } from '../model/updateResult';\nimport { WebhookLogDetailsResponse } from '../model/webhookLogDetailsResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsBillsAndBatchesEditspanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Fires a custom bill action on an account bill list. Custom bill actions are setup as webhooks.\n     * \n     * @param accountId The account against which all of its bills will have the custom action performed\n     * @param body \n     */\n    public accountBillListCustomAction(accountId: number, body?: ListActionCustom, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<WebhookLogDetailsResponse> {\n        return this.accountBillListCustomActionWithHttpInfo(accountId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<WebhookLogDetailsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Void/unvoid account bills\n     * \n     * @param accountId The account to void/unvoid all bills\n     * @param body Boolean representing void flag\n     */\n    public accountBillListVoid(accountId: number, body?: ListActionVoid, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.accountBillListVoidWithHttpInfo(accountId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Update all headers for a given list of bills If a new begin date or end date is being set, bills that would have end dates on or before their begin date will not be updated If the user does not have permission to edit exported or approved bills, those bills will not be updated Bill audits won&#39;t be fired\n     * \n     * @param body Bill header update action\n     */\n    public billActionUpdateHeaders(body?: BillActionHeaderUpdate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.billActionUpdateHeadersWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Update void flag for the given billIDs\n     * \n     * @param body Void action\n     */\n    public billActionVoid(body?: BillActionVoid, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.billActionVoidWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Fires a custom bill action on a bill list\n     * \n     * @param listId The bill list against which all of its bills will have the custom action performed\n     * @param body \n     */\n    public billListCustomAction(listId: number, body?: ListActionCustom, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<WebhookLogDetailsResponse> {\n        return this.billListCustomActionWithHttpInfo(listId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<WebhookLogDetailsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * For each record in the request body, update the bill payment details.\n     * \n     * @param body List of Bill payment details\n     */\n    public billPaymentDetails(body?: Array<BillPaymentDetailsOptionalItem>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BillPaymentDetailsOptionalResponse> {\n        return this.billPaymentDetailsWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BillPaymentDetailsOptionalResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * For each bill in the import file, update the bill payment details.\n     * The import file needs to be a comma separated file.  All lines are data lines (No header line allowed).  The file structure is as follows- Bill Id (required), Check Number (required), Check Date YYYYMMDD format (required), Pay Status (upto 10 characters- do not use commas) (required), Cleared Date YYYYMMDD format (optional), Accounting Period YYYYMM (optional), comment (optional) - comment will be ignored. Example data:12345,7098,20210801,Procesed,20210806,202107,July bill paid via AP   For this request, please use application/octet-stream as Content-Type and include your file as binary in the body of the request. ///\n     * @param body Binary data containing the file contents\n     */\n    public billPaymentDetailsFile(body?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BillPaymentDetailsFileResponse> {\n        return this.billPaymentDetailsFileWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BillPaymentDetailsFileResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Cleans a single bill. The dirty flag of the bill is not taken into account.\n     * \n     * @param billId \n     */\n    public cleanABill(billId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.cleanABillWithHttpInfo(billId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Cleans all dirty bills, and any bills created outside of version 7.\n     * \n     */\n    public cleanDirtyBills(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.cleanDirtyBillsWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Persist an payment event for several bills\n     * \n     * @param body Payment event creation payload\n     */\n    public createBillPaymentEvent(body?: BillPaymentEventCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BillPaymentEventResponse> {\n        return this.createBillPaymentEventWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BillPaymentEventResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * For each bill in the request body which has account-level charges, distribute these account charges amongst the meters on the bill. This is done proportionally by meter use or cost, depending on the split basis. Maximum of 10000 bills can be processed at one time.\n     * \n     * @param body Distribution information\n     */\n    public distributeAccountChargesToMeters(body?: DistributeAccountChargesToBillsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.distributeAccountChargesToMetersWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * For each bill in the provided batch which has account-level charges, distribute these account charges amongst the meters on the bill. This is done proportionally by meter use or cost, depending on the split basis. Maximum of 10000 bills can be processed at one time.\n     * \n     * @param batchId ID for the batch containing bills for which account charges will be distributed to meters\n     * @param body Distribution information\n     */\n    public distributeAccountChargesToMetersForBillsInBatch(batchId: number, body?: DistributeAccountChargesBase, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.distributeAccountChargesToMetersForBillsInBatchWithHttpInfo(batchId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * For each bill in the provided list which has account-level charges, distribute these account charges amongst the meters on the bill. This is done proportionally by meter use or cost, depending on the split basis. Maximum of 10000 bills can be processed at one time.\n     * \n     * @param listId ID for the list containing bills for which account charges will be distributed to meters\n     * @param body Distribution information\n     */\n    public distributeAccountChargesToMetersForBillsInList(listId: number, body?: DistributeAccountChargesBase, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.distributeAccountChargesToMetersForBillsInListWithHttpInfo(listId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit an existing bill\n     * If enabled, audits will be processed for the edited bill. If specified, any issues previously resolved will be reopened.  Below are some clarifications regarding the rules for editing an existing bill: * Bills which are marked as \\&quot;void\\&quot; may not be edited * Users without UpdateApprovedBills.Edit permission may not edit bills marked as \\&quot;Approved\\&quot; * Users without ExportBills.Edit permission may not edit bills exported to AP or GL * Bills must have at least one line item * If configured, required bill headers will be enforced\n     * @param billId \n     * @param body \n     */\n    public editBill(billId: number, body?: BillEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BillIdResponse> {\n        return this.editBillWithHttpInfo(billId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BillIdResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit the custom field values on a bill\n     * \n     * @param billId The id of the bill\n     * @param body The list of udf values being edited\n     */\n    public editBillCustomFields(billId: number, body?: Array<UDFValue>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<UDFFieldChild>> {\n        return this.editBillCustomFieldsWithHttpInfo(billId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<UDFFieldChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Fires a custom bill action on a meter bill list. Custom bill actions are setup as webhooks\n     * \n     * @param meterId The meter against which all of its bills will have the custom action performed\n     * @param body \n     */\n    public meterBillListCustomAction(meterId: number, body?: ListActionCustom, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<WebhookLogDetailsResponse> {\n        return this.meterBillListCustomActionWithHttpInfo(meterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<WebhookLogDetailsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Void/unvoid meter bills\n     * \n     * @param meterId The meter to void/unvoid all bills\n     * @param body Boolean representing void flag\n     */\n    public meterBillListVoid(meterId: number, body?: ListActionVoid, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.meterBillListVoidWithHttpInfo(meterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Fires a custom bill action. Custom bill actions are setup as webhooks\n     * \n     * @param body \n     */\n    public processBillCustomAction(body?: BillActionCustom, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<WebhookLogDetailsResponse> {\n        return this.processBillCustomActionWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<WebhookLogDetailsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Reverses all bills on an account bill list\n     * \n     * @param accountId The account that all bills will be reversed on\n     * @param body Batch settings for the reversed bills. If not provided, bills will be placed in the currently open batch.\n     */\n    public reverseAccountBillList(accountId: number, body?: ListActionReverse, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.reverseAccountBillListWithHttpInfo(accountId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Reverses all bills on a bill list\n     * \n     * @param listId The bill list that all bills will be reversed on\n     * @param body Batch settings for the reversed bill. If not provided, bills will be placed in the currently open batch.\n     */\n    public reverseBillList(listId: number, body?: ListActionReverse, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.reverseBillListWithHttpInfo(listId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Creates reversal bills for the given bill ids considering multiple open batch options.\n     * \n     * @param body \n     */\n    public reverseBillsWithMultipleOpenBatchOptions(body?: BillReversalRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.reverseBillsWithMultipleOpenBatchOptionsWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Reverses all bills on a meter bill list\n     * \n     * @param meterId The meter that all bills will be reversed on\n     * @param body Batch settings for the reversed bills. If not provided, bills will be placed in the currently open batch.\n     */\n    public reverseMeterBillList(meterId: number, body?: ListActionReverse, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.reverseMeterBillListWithHttpInfo(meterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Updates bill headers for the bills for an account&#39;s bill list Audits won&#39;t be fired\n     * \n     * @param accountId The account whose bills will have header updates applied\n     * @param body Indicates which headers need to be updated\n     */\n    public updateAccountBillListHeaders(accountId: number, body?: BillHeaderUpdate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.updateAccountBillListHeadersWithHttpInfo(accountId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Update all headers for a bill list If a new begin date or end date is being set, bills that would have end dates on or before their begin date will not be updated If the user does not have permission to edit exported or approved bills, those bills will not be updated Bills audits won&#39;t be fired\n     * \n     * @param listId The list identifier\n     * @param body Bill list header update action\n     */\n    public updateBillListHeaders(listId: number, body?: BillHeaderUpdate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.updateBillListHeadersWithHttpInfo(listId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Updates bill headers for all bills on a meter bill list Audits won&#39;t be fired\n     * \n     * @param meterId The meter whose bills will have header updates applied\n     * @param body Indicates which headers need to be updated\n     */\n    public updateMeterBillListHeaders(meterId: number, body?: BillHeaderUpdate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.updateMeterBillListHeadersWithHttpInfo(meterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Void/unvoid bill list\n     * \n     * @param listId The list identifier\n     * @param body Boolean representing void flag\n     */\n    public voidBillList(listId: number, body?: ListActionVoid, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.voidBillListWithHttpInfo(listId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Fires a custom bill action on an account bill list. Custom bill actions are setup as webhooks.\n     * \n     * @param accountId The account against which all of its bills will have the custom action performed\n     * @param body \n     */\n    public accountBillListCustomActionWithHttpInfo(accountId: number, body?: ListActionCustom, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<WebhookLogDetailsResponse>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/list/bill/customAction'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling accountBillListCustomAction.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<WebhookLogDetailsResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Void/unvoid account bills\n     * \n     * @param accountId The account to void/unvoid all bills\n     * @param body Boolean representing void flag\n     */\n    public accountBillListVoidWithHttpInfo(accountId: number, body?: ListActionVoid, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/list/bill/void'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling accountBillListVoid.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Update all headers for a given list of bills If a new begin date or end date is being set, bills that would have end dates on or before their begin date will not be updated If the user does not have permission to edit exported or approved bills, those bills will not be updated Bill audits won&#39;t be fired\n     * \n     * @param body Bill header update action\n     */\n    public billActionUpdateHeadersWithHttpInfo(body?: BillActionHeaderUpdate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/bill/billHeaders';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Update void flag for the given billIDs\n     * \n     * @param body Void action\n     */\n    public billActionVoidWithHttpInfo(body?: BillActionVoid, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/bill/void';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Fires a custom bill action on a bill list\n     * \n     * @param listId The bill list against which all of its bills will have the custom action performed\n     * @param body \n     */\n    public billListCustomActionWithHttpInfo(listId: number, body?: ListActionCustom, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<WebhookLogDetailsResponse>> {\n        const path = this.basePath + '/api/v3/list/${listId}/customAction'\n                    .replace('${' + 'listId' + '}', String(listId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'listId' is not null or undefined\n        if (listId === null || listId === undefined) {\n            throw new Error('Required parameter listId was null or undefined when calling billListCustomAction.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<WebhookLogDetailsResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * For each record in the request body, update the bill payment details.\n     * \n     * @param body List of Bill payment details\n     */\n    public billPaymentDetailsWithHttpInfo(body?: Array<BillPaymentDetailsOptionalItem>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BillPaymentDetailsOptionalResponse>> {\n        const path = this.basePath + '/api/v202401/bill/billPaymentDetails';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BillPaymentDetailsOptionalResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * For each bill in the import file, update the bill payment details.\n     * The import file needs to be a comma separated file.  All lines are data lines (No header line allowed).  The file structure is as follows- Bill Id (required), Check Number (required), Check Date YYYYMMDD format (required), Pay Status (upto 10 characters- do not use commas) (required), Cleared Date YYYYMMDD format (optional), Accounting Period YYYYMM (optional), comment (optional) - comment will be ignored. Example data:12345,7098,20210801,Procesed,20210806,202107,July bill paid via AP   For this request, please use application/octet-stream as Content-Type and include your file as binary in the body of the request. ///\n     * @param body Binary data containing the file contents\n     */\n    public billPaymentDetailsFileWithHttpInfo(body?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BillPaymentDetailsFileResponse>> {\n        const path = this.basePath + '/api/v202108/bill/billPaymentDetailsFile';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/octet-stream'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BillPaymentDetailsFileResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Cleans a single bill. The dirty flag of the bill is not taken into account.\n     * \n     * @param billId \n     */\n    public cleanABillWithHttpInfo(billId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/bill/cleanBill/${billId}'\n                    .replace('${' + 'billId' + '}', String(billId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'billId' is not null or undefined\n        if (billId === null || billId === undefined) {\n            throw new Error('Required parameter billId was null or undefined when calling cleanABill.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Cleans all dirty bills, and any bills created outside of version 7.\n     * \n     */\n    public cleanDirtyBillsWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/bill/cleanBill';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Persist an payment event for several bills\n     * \n     * @param body Payment event creation payload\n     */\n    public createBillPaymentEventWithHttpInfo(body?: BillPaymentEventCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BillPaymentEventResponse>> {\n        const path = this.basePath + '/api/v202504/bill/paymentEvent';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BillPaymentEventResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * For each bill in the request body which has account-level charges, distribute these account charges amongst the meters on the bill. This is done proportionally by meter use or cost, depending on the split basis. Maximum of 10000 bills can be processed at one time.\n     * \n     * @param body Distribution information\n     */\n    public distributeAccountChargesToMetersWithHttpInfo(body?: DistributeAccountChargesToBillsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v202104/bill/distributeAccountCharges';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * For each bill in the provided batch which has account-level charges, distribute these account charges amongst the meters on the bill. This is done proportionally by meter use or cost, depending on the split basis. Maximum of 10000 bills can be processed at one time.\n     * \n     * @param batchId ID for the batch containing bills for which account charges will be distributed to meters\n     * @param body Distribution information\n     */\n    public distributeAccountChargesToMetersForBillsInBatchWithHttpInfo(batchId: number, body?: DistributeAccountChargesBase, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v202104/batch/${batchId}/distributeAccountCharges'\n                    .replace('${' + 'batchId' + '}', String(batchId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'batchId' is not null or undefined\n        if (batchId === null || batchId === undefined) {\n            throw new Error('Required parameter batchId was null or undefined when calling distributeAccountChargesToMetersForBillsInBatch.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * For each bill in the provided list which has account-level charges, distribute these account charges amongst the meters on the bill. This is done proportionally by meter use or cost, depending on the split basis. Maximum of 10000 bills can be processed at one time.\n     * \n     * @param listId ID for the list containing bills for which account charges will be distributed to meters\n     * @param body Distribution information\n     */\n    public distributeAccountChargesToMetersForBillsInListWithHttpInfo(listId: number, body?: DistributeAccountChargesBase, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v202104/list/${listId}/distributeAccountCharges'\n                    .replace('${' + 'listId' + '}', String(listId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'listId' is not null or undefined\n        if (listId === null || listId === undefined) {\n            throw new Error('Required parameter listId was null or undefined when calling distributeAccountChargesToMetersForBillsInList.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edit an existing bill\n     * If enabled, audits will be processed for the edited bill. If specified, any issues previously resolved will be reopened.  Below are some clarifications regarding the rules for editing an existing bill: * Bills which are marked as \\&quot;void\\&quot; may not be edited * Users without UpdateApprovedBills.Edit permission may not edit bills marked as \\&quot;Approved\\&quot; * Users without ExportBills.Edit permission may not edit bills exported to AP or GL * Bills must have at least one line item * If configured, required bill headers will be enforced\n     * @param billId \n     * @param body \n     */\n    public editBillWithHttpInfo(billId: number, body?: BillEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BillIdResponse>> {\n        const path = this.basePath + '/api/v202604/bill/${billId}'\n                    .replace('${' + 'billId' + '}', String(billId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'billId' is not null or undefined\n        if (billId === null || billId === undefined) {\n            throw new Error('Required parameter billId was null or undefined when calling editBill.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BillIdResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edit the custom field values on a bill\n     * \n     * @param billId The id of the bill\n     * @param body The list of udf values being edited\n     */\n    public editBillCustomFieldsWithHttpInfo(billId: number, body?: Array<UDFValue>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<UDFFieldChild>>> {\n        const path = this.basePath + '/api/v202202/bill/${billId}/udf'\n                    .replace('${' + 'billId' + '}', String(billId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'billId' is not null or undefined\n        if (billId === null || billId === undefined) {\n            throw new Error('Required parameter billId was null or undefined when calling editBillCustomFields.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<UDFFieldChild>>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Fires a custom bill action on a meter bill list. Custom bill actions are setup as webhooks\n     * \n     * @param meterId The meter against which all of its bills will have the custom action performed\n     * @param body \n     */\n    public meterBillListCustomActionWithHttpInfo(meterId: number, body?: ListActionCustom, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<WebhookLogDetailsResponse>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/list/bill/customAction'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling meterBillListCustomAction.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<WebhookLogDetailsResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Void/unvoid meter bills\n     * \n     * @param meterId The meter to void/unvoid all bills\n     * @param body Boolean representing void flag\n     */\n    public meterBillListVoidWithHttpInfo(meterId: number, body?: ListActionVoid, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/list/bill/void'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling meterBillListVoid.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Fires a custom bill action. Custom bill actions are setup as webhooks\n     * \n     * @param body \n     */\n    public processBillCustomActionWithHttpInfo(body?: BillActionCustom, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<WebhookLogDetailsResponse>> {\n        const path = this.basePath + '/api/v3/bill/customAction';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<WebhookLogDetailsResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Reverses all bills on an account bill list\n     * \n     * @param accountId The account that all bills will be reversed on\n     * @param body Batch settings for the reversed bills. If not provided, bills will be placed in the currently open batch.\n     */\n    public reverseAccountBillListWithHttpInfo(accountId: number, body?: ListActionReverse, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/list/bill/reverse'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling reverseAccountBillList.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Reverses all bills on a bill list\n     * \n     * @param listId The bill list that all bills will be reversed on\n     * @param body Batch settings for the reversed bill. If not provided, bills will be placed in the currently open batch.\n     */\n    public reverseBillListWithHttpInfo(listId: number, body?: ListActionReverse, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/list/${listId}/reverse'\n                    .replace('${' + 'listId' + '}', String(listId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'listId' is not null or undefined\n        if (listId === null || listId === undefined) {\n            throw new Error('Required parameter listId was null or undefined when calling reverseBillList.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Creates reversal bills for the given bill ids considering multiple open batch options.\n     * \n     * @param body \n     */\n    public reverseBillsWithMultipleOpenBatchOptionsWithHttpInfo(body?: BillReversalRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v202510/bill/reverse';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Reverses all bills on a meter bill list\n     * \n     * @param meterId The meter that all bills will be reversed on\n     * @param body Batch settings for the reversed bills. If not provided, bills will be placed in the currently open batch.\n     */\n    public reverseMeterBillListWithHttpInfo(meterId: number, body?: ListActionReverse, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/list/bill/reverse'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling reverseMeterBillList.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Updates bill headers for the bills for an account&#39;s bill list Audits won&#39;t be fired\n     * \n     * @param accountId The account whose bills will have header updates applied\n     * @param body Indicates which headers need to be updated\n     */\n    public updateAccountBillListHeadersWithHttpInfo(accountId: number, body?: BillHeaderUpdate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/list/bill/billHeaders'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling updateAccountBillListHeaders.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Update all headers for a bill list If a new begin date or end date is being set, bills that would have end dates on or before their begin date will not be updated If the user does not have permission to edit exported or approved bills, those bills will not be updated Bills audits won&#39;t be fired\n     * \n     * @param listId The list identifier\n     * @param body Bill list header update action\n     */\n    public updateBillListHeadersWithHttpInfo(listId: number, body?: BillHeaderUpdate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/list/${listId}/billHeaders'\n                    .replace('${' + 'listId' + '}', String(listId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'listId' is not null or undefined\n        if (listId === null || listId === undefined) {\n            throw new Error('Required parameter listId was null or undefined when calling updateBillListHeaders.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Updates bill headers for all bills on a meter bill list Audits won&#39;t be fired\n     * \n     * @param meterId The meter whose bills will have header updates applied\n     * @param body Indicates which headers need to be updated\n     */\n    public updateMeterBillListHeadersWithHttpInfo(meterId: number, body?: BillHeaderUpdate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/list/bill/billHeaders'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling updateMeterBillListHeaders.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Void/unvoid bill list\n     * \n     * @param listId The list identifier\n     * @param body Boolean representing void flag\n     */\n    public voidBillListWithHttpInfo(listId: number, body?: ListActionVoid, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/list/${listId}/void'\n                    .replace('${' + 'listId' + '}', String(listId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'listId' is not null or undefined\n        if (listId === null || listId === undefined) {\n            throw new Error('Required parameter listId was null or undefined when calling voidBillList.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { UpdateResult } from '../model/updateResult';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsBillsAndBatchesManagespanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Moves the set of bills to the specified batch   The bills being moved could be in an open, pending or closed batch   The specified batch should be an open or pending batch   All the bills being moved should be in the same batch Moving from a pending to an open will cause the bills to get un-voided Moving from an open/closed to a pending will cause the bills to get voided If bills were in a closed batch, and downstream processes had already run, those processes will not get reversed\n     * \n     * @param batchId Batch to move to\n     * @param body List of bills to be moved to the new batch\n     */\n    public moveBatch(batchId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.moveBatchWithHttpInfo(batchId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Moves the set of bills to the specified batch   The bills being moved could be in an open, pending or closed batch   The specified batch should be an open or pending batch   All the bills being moved should be in the same batch Moving from a pending to an open will cause the bills to get un-voided Moving from an open/closed to a pending will cause the bills to get voided If bills were in a closed batch, and downstream processes had already run, those processes will not get reversed\n     * \n     * @param batchId Batch to move to\n     * @param body List of bills to be moved to the new batch\n     */\n    public moveBatchWithHttpInfo(batchId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v202507/bill/batch/${batchId}'\n                    .replace('${' + 'batchId' + '}', String(batchId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'batchId' is not null or undefined\n        if (batchId === null || batchId === undefined) {\n            throw new Error('Required parameter batchId was null or undefined when calling moveBatch.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { Activity } from '../model/activity';\nimport { ApprovalWorkflowSettings } from '../model/approvalWorkflowSettings';\nimport { AuditSettingsResponse } from '../model/auditSettingsResponse';\nimport { BatchLogResponse } from '../model/batchLogResponse';\nimport { BatchResponse } from '../model/batchResponse';\nimport { BatchWorkflowSettings } from '../model/batchWorkflowSettings';\nimport { BillAccountMeterResponse } from '../model/billAccountMeterResponse';\nimport { BillAccountMeterStatisticsResponse } from '../model/billAccountMeterStatisticsResponse';\nimport { BillActionHistoricalExport } from '../model/billActionHistoricalExport';\nimport { BillEntryResponse } from '../model/billEntryResponse';\nimport { BillExport } from '../model/billExport';\nimport { BillHistoryResponse } from '../model/billHistoryResponse';\nimport { BillImportKickoutDetailsResponse } from '../model/billImportKickoutDetailsResponse';\nimport { BillImportTaskKickoutSummaryResponse } from '../model/billImportTaskKickoutSummaryResponse';\nimport { BillImportWorkflowSettings } from '../model/billImportWorkflowSettings';\nimport { BillPaymentEventResponse } from '../model/billPaymentEventResponse';\nimport { BillResponse } from '../model/billResponse';\nimport { BillViewResponse } from '../model/billViewResponse';\nimport { BodylineResponse } from '../model/bodylineResponse';\nimport { ExportWorkflowSettings } from '../model/exportWorkflowSettings';\nimport { JsonBillExportResponse } from '../model/jsonBillExportResponse';\nimport { ListResponse } from '../model/listResponse';\nimport { MeterBillResponse } from '../model/meterBillResponse';\nimport { UDFFieldChild } from '../model/uDFFieldChild';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsBillsAndBatchesViewspanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Export list data to excel spreadsheet format\n     * \n     * @param accountId The account to export bills\n     */\n    public accountBillListExcelExport(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.accountBillListExcelExportWithHttpInfo(accountId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Generate a bill import file from all bills in an account bill list.\n     * \n     * @param accountId The account from which to get all bills\n     */\n    public accountExportHistoricalBillList(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<string> {\n        return this.accountExportHistoricalBillListWithHttpInfo(accountId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<string>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get the account bills list\n     * \n     * @param accountId The account identifier to retrieve bills list for\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public accountList(accountId: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ListResponse> {\n        return this.accountListWithHttpInfo(accountId, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ListResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Download file for a bill custom field\n     * \n     * @param billId The id of the bill\n     * @param udfId The id of the custom field\n     */\n    public downloadBillCustomFieldFile(billId: number, udfId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.downloadBillCustomFieldFileWithHttpInfo(billId, udfId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves a JSON array of bill details.\n     * \n     * @param body List of bill IDs\n     */\n    public exportBillsAsJson(body?: BillExport, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<JsonBillExportResponse>> {\n        return this.exportBillsAsJsonWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<JsonBillExportResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Generate a bill import file from bills in a list.\n     * \n     * @param listId The id of the list to get bills from\n     */\n    public exportHistoricalBillList(listId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<string> {\n        return this.exportHistoricalBillListWithHttpInfo(listId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<string>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * \n     * \n     * @param exportFileName \n     * @param body \n     */\n    public exportHistoricalBills(exportFileName?: string, body?: BillActionHistoricalExport, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<string> {\n        return this.exportHistoricalBillsWithHttpInfo(exportFileName, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<string>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves bill history for an account\n     * \n     * @param accountId accountId to get bill history for\n     * @param billingPeriod required: billingPeriod in yyyymm format to return history from\n     * @param numberOfYears optional: Number of years of history to return.  Defaults to 5\n     * @param includeVoid optional: Should voided bills be included.  Defaults to false\n     * @param includeAccrual optional: Should accrual bills be included.  Defaults to false\n     */\n    public getAccountBillHistory(accountId: number, billingPeriod?: number, numberOfYears?: number, includeVoid?: boolean, includeAccrual?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BillHistoryResponse>> {\n        return this.getAccountBillHistoryWithHttpInfo(accountId, billingPeriod, numberOfYears, includeVoid, includeAccrual, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BillHistoryResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all bill&#39;s bodylines\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getAllBillsBodylines(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BodylineResponse>> {\n        return this.getAllBillsBodylinesWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BodylineResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get approval workflow settings\n     * \n     */\n    public getApprovalWorkflow(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ApprovalWorkflowSettings> {\n        return this.getApprovalWorkflowWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ApprovalWorkflowSettings>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Gets all audit settings\n     * \n     */\n    public getAuditSettings(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<AuditSettingsResponse> {\n        return this.getAuditSettingsWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<AuditSettingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * \n     * \n     * @param batchId \n     */\n    public getBatch(batchId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BatchResponse> {\n        return this.getBatchWithHttpInfo(batchId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BatchResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all move operation logs for a specific batch\n     * \n     * @param batchId Batch identifier\n     */\n    public getBatchLogs(batchId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BatchLogResponse> {\n        return this.getBatchLogsWithHttpInfo(batchId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BatchLogResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get batch workflow settings\n     * \n     */\n    public getBatchWorkflow(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BatchWorkflowSettings> {\n        return this.getBatchWorkflowWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BatchWorkflowSettings>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * \n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getBatches(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BatchResponse>> {\n        return this.getBatchesWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BatchResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves one bill\n     * \n     * @param billId The bill identifier\n     */\n    public getBill(billId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BillResponse> {\n        return this.getBillWithHttpInfo(billId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BillResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves bill account meter record for a specific billId\n     * \n     * @param billId The bill identifier\n     */\n    public getBillAccountMeterActualByBillId(billId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BillAccountMeterResponse>> {\n        return this.getBillAccountMeterActualByBillIdWithHttpInfo(billId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BillAccountMeterResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves bill account meter calendarized record for a specific billId\n     * \n     * @param billId The bill identifier\n     */\n    public getBillAccountMeterCalendarizedByBillId(billId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BillAccountMeterResponse>> {\n        return this.getBillAccountMeterCalendarizedByBillIdWithHttpInfo(billId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BillAccountMeterResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves bill account meter normalized record for a specific billId\n     * \n     * @param billId The bill identifier\n     */\n    public getBillAccountMeterNormalizedByBillId(billId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BillAccountMeterResponse>> {\n        return this.getBillAccountMeterNormalizedByBillIdWithHttpInfo(billId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BillAccountMeterResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves bill account meter statistics record for a specific billId\n     * \n     * @param billId The bill identifier\n     */\n    public getBillAccountMeterStatisticsByBillId(billId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BillAccountMeterStatisticsResponse>> {\n        return this.getBillAccountMeterStatisticsByBillIdWithHttpInfo(billId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BillAccountMeterStatisticsResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves bill account meter records\n     * \n     * @param filter Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getBillAccountMetersActual(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BillAccountMeterResponse>> {\n        return this.getBillAccountMetersActualWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BillAccountMeterResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves bill account meter calendarized records\n     * \n     * @param filter Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getBillAccountMetersCalendarized(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BillAccountMeterResponse>> {\n        return this.getBillAccountMetersCalendarizedWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BillAccountMeterResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves bill account meter normalized records\n     * \n     * @param filter Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getBillAccountMetersNormalized(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BillAccountMeterResponse>> {\n        return this.getBillAccountMetersNormalizedWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BillAccountMeterResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves bill account meter statistics records\n     * \n     * @param filter Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getBillAccountMetersStatistics(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BillAccountMeterStatisticsResponse>> {\n        return this.getBillAccountMetersStatisticsWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BillAccountMeterStatisticsResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * List of a bill IDs that were created or modified since the given date.\n     * \n     * @param date Created or modified datetime; Defaults to yesterday at the current time\n     */\n    public getBillActivity(date?: Date, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<Activity>> {\n        return this.getBillActivityWithHttpInfo(date, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<Activity>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves one bill&#39;s bodylines\n     * \n     * @param billId The bill identifier\n     */\n    public getBillBodylines(billId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BodylineResponse>> {\n        return this.getBillBodylinesWithHttpInfo(billId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BodylineResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get custom field values for a bill\n     * \n     * @param billId The id of the bill\n     */\n    public getBillCustomFields(billId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<UDFFieldChild>> {\n        return this.getBillCustomFieldsWithHttpInfo(billId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<UDFFieldChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all data necessary to load the bill entry screen\n     * \n     * @param billId \n     */\n    public getBillEntryDataByBillId(billId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BillEntryResponse> {\n        return this.getBillEntryDataByBillIdWithHttpInfo(billId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BillEntryResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves bill history from starting at the billId billing period\n     * \n     * @param billId billId to get bill history for\n     * @param numberOfYears optional: Number of years of history to return.  Defaults to 5\n     * @param includeVoid optional: Should voided bills be included.  Defaults to false\n     * @param includeAccrual optional: Should accrual bills be included.  Defaults to false\n     */\n    public getBillHistory(billId: number, numberOfYears?: number, includeVoid?: boolean, includeAccrual?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BillHistoryResponse>> {\n        return this.getBillHistoryWithHttpInfo(billId, numberOfYears, includeVoid, includeAccrual, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BillHistoryResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves the kickout details associated with a specified bill import task and an optional kickout message.\n     * \n     * @param taskGuid The task GUID to search for. The task must be of type Bill Import.\n     * @param kickoutMessage The optional kickout message to search for.\n     */\n    public getBillImportKickoutDetails(taskGuid: string, kickoutMessage?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BillImportKickoutDetailsResponse> {\n        return this.getBillImportKickoutDetailsWithHttpInfo(taskGuid, kickoutMessage, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BillImportKickoutDetailsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves the kickout details associated with a specified bill import task, file and an optional kickout message.\n     * \n     * @param taskGuid The task GUID to search for. The task must be of type Bill Import.\n     * @param filename The kickout file name to search for.\n     * @param kickoutMessage The optional kickout message to search for.\n     */\n    public getBillImportKickoutDetailsByFile(taskGuid: string, filename: string, kickoutMessage?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BillImportKickoutDetailsResponse> {\n        return this.getBillImportKickoutDetailsByFileWithHttpInfo(taskGuid, filename, kickoutMessage, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BillImportKickoutDetailsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get bill import workflow settings\n     * \n     */\n    public getBillImportWorkflowSettings(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BillImportWorkflowSettings> {\n        return this.getBillImportWorkflowSettingsWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BillImportWorkflowSettings>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves the payment events for a bill\n     * \n     * @param billId Identifier for the bill\n     */\n    public getBillPaymentEvents(billId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BillPaymentEventResponse>> {\n        return this.getBillPaymentEventsWithHttpInfo(billId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BillPaymentEventResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves properties for bill view\n     * \n     * @param billId The bill identifier\n     */\n    public getBillView(billId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BillViewResponse> {\n        return this.getBillViewWithHttpInfo(billId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BillViewResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves an array of bills. The array of bills can be filtered by a number of criteria. See the filter property for more details\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getBills(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BillResponse>> {\n        return this.getBillsWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BillResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get export workflow settings\n     * \n     * @param exportMode The export mode to get settings for, can be &#39;AP&#39;, &#39;GL&#39; or &#39;Payment&#39;\n     */\n    public getExportWorkflow(exportMode?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ExportWorkflowSettings> {\n        return this.getExportWorkflowWithHttpInfo(exportMode, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ExportWorkflowSettings>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all bills for a particular meter\n     * \n     * @param meterId The meter identifier for which bill values are being retrieved\n     */\n    public getMeterBills(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MeterBillResponse>> {\n        return this.getMeterBillsWithHttpInfo(meterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MeterBillResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves a list of kickout messages associated with a specified bill import task\n     * \n     * @param taskGuid The task GUID to search for. The task must be of type Bill Import.\n     */\n    public getTaskKickoutSummary(taskGuid: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BillImportTaskKickoutSummaryResponse> {\n        return this.getTaskKickoutSummaryWithHttpInfo(taskGuid, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BillImportTaskKickoutSummaryResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves a list of kickout messages associated with a specified bill import task and file.\n     * \n     * @param taskGuid The task GUID to search for. The task must be of type Bill Import.\n     * @param filename The kickout file name to search for.\n     */\n    public getTaskKickoutSummaryByFile(taskGuid: string, filename: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BillImportTaskKickoutSummaryResponse> {\n        return this.getTaskKickoutSummaryByFileWithHttpInfo(taskGuid, filename, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BillImportTaskKickoutSummaryResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get the meter bills list\n     * \n     * @param meterId The meter identifier to retrieve bills list for\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public meterBillList(meterId: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ListResponse> {\n        return this.meterBillListWithHttpInfo(meterId, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ListResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Export list data to excel spreadsheet format\n     * \n     * @param meterId The meter to export bills from\n     */\n    public meterBillListExcelExport(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.meterBillListExcelExportWithHttpInfo(meterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Generate a bill import file from all bills in a meter bill list.\n     * \n     * @param meterId The meter from which to get all bills\n     */\n    public meterExportHistoricalBillList(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<string> {\n        return this.meterExportHistoricalBillListWithHttpInfo(meterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<string>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Export list data to excel spreadsheet format\n     * \n     * @param accountId The account to export bills\n     */\n    public accountBillListExcelExportWithHttpInfo(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/list/bill/excelexport'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling accountBillListExcelExport.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Generate a bill import file from all bills in an account bill list.\n     * \n     * @param accountId The account from which to get all bills\n     */\n    public accountExportHistoricalBillListWithHttpInfo(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<string>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/list/bill/generateimport'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling accountExportHistoricalBillList.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<string>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Get the account bills list\n     * \n     * @param accountId The account identifier to retrieve bills list for\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public accountListWithHttpInfo(accountId: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ListResponse>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/list/bill'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling accountList.');\n        }\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ListResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Download file for a bill custom field\n     * \n     * @param billId The id of the bill\n     * @param udfId The id of the custom field\n     */\n    public downloadBillCustomFieldFileWithHttpInfo(billId: number, udfId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202202/bill/${billId}/udf/${udfId}/download'\n                    .replace('${' + 'billId' + '}', String(billId))\n                    .replace('${' + 'udfId' + '}', String(udfId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'billId' is not null or undefined\n        if (billId === null || billId === undefined) {\n            throw new Error('Required parameter billId was null or undefined when calling downloadBillCustomFieldFile.');\n        }\n        // verify required parameter 'udfId' is not null or undefined\n        if (udfId === null || udfId === undefined) {\n            throw new Error('Required parameter udfId was null or undefined when calling downloadBillCustomFieldFile.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves a JSON array of bill details.\n     * \n     * @param body List of bill IDs\n     */\n    public exportBillsAsJsonWithHttpInfo(body?: BillExport, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<JsonBillExportResponse>>> {\n        const path = this.basePath + '/api/v202405/bill/export/json';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<JsonBillExportResponse>>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Generate a bill import file from bills in a list.\n     * \n     * @param listId The id of the list to get bills from\n     */\n    public exportHistoricalBillListWithHttpInfo(listId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<string>> {\n        const path = this.basePath + '/api/v3/list/${listId}/bill/generateimport'\n                    .replace('${' + 'listId' + '}', String(listId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'listId' is not null or undefined\n        if (listId === null || listId === undefined) {\n            throw new Error('Required parameter listId was null or undefined when calling exportHistoricalBillList.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<string>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * \n     * \n     * @param exportFileName \n     * @param body \n     */\n    public exportHistoricalBillsWithHttpInfo(exportFileName?: string, body?: BillActionHistoricalExport, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<string>> {\n        const path = this.basePath + '/api/v3/generatebillimport';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (exportFileName !== undefined) {\n            queryParameters = queryParameters.set('exportFileName', <any>exportFileName);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<string>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Retrieves bill history for an account\n     * \n     * @param accountId accountId to get bill history for\n     * @param billingPeriod required: billingPeriod in yyyymm format to return history from\n     * @param numberOfYears optional: Number of years of history to return.  Defaults to 5\n     * @param includeVoid optional: Should voided bills be included.  Defaults to false\n     * @param includeAccrual optional: Should accrual bills be included.  Defaults to false\n     */\n    public getAccountBillHistoryWithHttpInfo(accountId: number, billingPeriod?: number, numberOfYears?: number, includeVoid?: boolean, includeAccrual?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BillHistoryResponse>>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/billHistory'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling getAccountBillHistory.');\n        }\n        if (billingPeriod !== undefined) {\n            queryParameters = queryParameters.set('billingPeriod', <any>billingPeriod);\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (includeVoid !== undefined) {\n            queryParameters = queryParameters.set('includeVoid', <any>includeVoid);\n        }\n\n        if (includeAccrual !== undefined) {\n            queryParameters = queryParameters.set('includeAccrual', <any>includeAccrual);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BillHistoryResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all bill&#39;s bodylines\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getAllBillsBodylinesWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BodylineResponse>>> {\n        const path = this.basePath + '/api/v3/bill/bodyline';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BodylineResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get approval workflow settings\n     * \n     */\n    public getApprovalWorkflowWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ApprovalWorkflowSettings>> {\n        const path = this.basePath + '/api/v3/workflow/approval';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ApprovalWorkflowSettings>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Gets all audit settings\n     * \n     */\n    public getAuditSettingsWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<AuditSettingsResponse>> {\n        const path = this.basePath + '/api/v202104/audit';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<AuditSettingsResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * \n     * \n     * @param batchId \n     */\n    public getBatchWithHttpInfo(batchId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BatchResponse>> {\n        const path = this.basePath + '/api/v3/batch/${batchId}'\n                    .replace('${' + 'batchId' + '}', String(batchId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'batchId' is not null or undefined\n        if (batchId === null || batchId === undefined) {\n            throw new Error('Required parameter batchId was null or undefined when calling getBatch.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BatchResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all move operation logs for a specific batch\n     * \n     * @param batchId Batch identifier\n     */\n    public getBatchLogsWithHttpInfo(batchId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BatchLogResponse>> {\n        const path = this.basePath + '/api/v202509/batch/${batchId}/log'\n                    .replace('${' + 'batchId' + '}', String(batchId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'batchId' is not null or undefined\n        if (batchId === null || batchId === undefined) {\n            throw new Error('Required parameter batchId was null or undefined when calling getBatchLogs.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BatchLogResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get batch workflow settings\n     * \n     */\n    public getBatchWorkflowWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BatchWorkflowSettings>> {\n        const path = this.basePath + '/api/v3/workflow/batch';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BatchWorkflowSettings>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * \n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getBatchesWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BatchResponse>>> {\n        const path = this.basePath + '/api/v3/batch';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BatchResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves one bill\n     * \n     * @param billId The bill identifier\n     */\n    public getBillWithHttpInfo(billId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BillResponse>> {\n        const path = this.basePath + '/api/v3/bill/${billId}'\n                    .replace('${' + 'billId' + '}', String(billId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'billId' is not null or undefined\n        if (billId === null || billId === undefined) {\n            throw new Error('Required parameter billId was null or undefined when calling getBill.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BillResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves bill account meter record for a specific billId\n     * \n     * @param billId The bill identifier\n     */\n    public getBillAccountMeterActualByBillIdWithHttpInfo(billId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BillAccountMeterResponse>>> {\n        const path = this.basePath + '/api/v3/bill/${billId}/billaccountmeter/actual'\n                    .replace('${' + 'billId' + '}', String(billId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'billId' is not null or undefined\n        if (billId === null || billId === undefined) {\n            throw new Error('Required parameter billId was null or undefined when calling getBillAccountMeterActualByBillId.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BillAccountMeterResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves bill account meter calendarized record for a specific billId\n     * \n     * @param billId The bill identifier\n     */\n    public getBillAccountMeterCalendarizedByBillIdWithHttpInfo(billId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BillAccountMeterResponse>>> {\n        const path = this.basePath + '/api/v3/bill/${billId}/billaccountmeter/calendarized'\n                    .replace('${' + 'billId' + '}', String(billId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'billId' is not null or undefined\n        if (billId === null || billId === undefined) {\n            throw new Error('Required parameter billId was null or undefined when calling getBillAccountMeterCalendarizedByBillId.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BillAccountMeterResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves bill account meter normalized record for a specific billId\n     * \n     * @param billId The bill identifier\n     */\n    public getBillAccountMeterNormalizedByBillIdWithHttpInfo(billId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BillAccountMeterResponse>>> {\n        const path = this.basePath + '/api/v3/bill/${billId}/billaccountmeter/normalized'\n                    .replace('${' + 'billId' + '}', String(billId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'billId' is not null or undefined\n        if (billId === null || billId === undefined) {\n            throw new Error('Required parameter billId was null or undefined when calling getBillAccountMeterNormalizedByBillId.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BillAccountMeterResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves bill account meter statistics record for a specific billId\n     * \n     * @param billId The bill identifier\n     */\n    public getBillAccountMeterStatisticsByBillIdWithHttpInfo(billId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BillAccountMeterStatisticsResponse>>> {\n        const path = this.basePath + '/api/v3/bill/${billId}/billaccountmeter/statistics'\n                    .replace('${' + 'billId' + '}', String(billId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'billId' is not null or undefined\n        if (billId === null || billId === undefined) {\n            throw new Error('Required parameter billId was null or undefined when calling getBillAccountMeterStatisticsByBillId.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BillAccountMeterStatisticsResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves bill account meter records\n     * \n     * @param filter Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getBillAccountMetersActualWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BillAccountMeterResponse>>> {\n        const path = this.basePath + '/api/v3/bill/billaccountmeter/actual';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BillAccountMeterResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves bill account meter calendarized records\n     * \n     * @param filter Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getBillAccountMetersCalendarizedWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BillAccountMeterResponse>>> {\n        const path = this.basePath + '/api/v3/bill/billaccountmeter/calendarized';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BillAccountMeterResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves bill account meter normalized records\n     * \n     * @param filter Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getBillAccountMetersNormalizedWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BillAccountMeterResponse>>> {\n        const path = this.basePath + '/api/v3/bill/billaccountmeter/normalized';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BillAccountMeterResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves bill account meter statistics records\n     * \n     * @param filter Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getBillAccountMetersStatisticsWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BillAccountMeterStatisticsResponse>>> {\n        const path = this.basePath + '/api/v3/bill/billaccountmeter/statistics';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BillAccountMeterStatisticsResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * List of a bill IDs that were created or modified since the given date.\n     * \n     * @param date Created or modified datetime; Defaults to yesterday at the current time\n     */\n    public getBillActivityWithHttpInfo(date?: Date, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<Activity>>> {\n        const path = this.basePath + '/api/v3/activity/bill';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (date !== undefined) {\n            queryParameters = queryParameters.set('date', <any>date.toISOString());\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<Activity>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves one bill&#39;s bodylines\n     * \n     * @param billId The bill identifier\n     */\n    public getBillBodylinesWithHttpInfo(billId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BodylineResponse>>> {\n        const path = this.basePath + '/api/v202208/bill/${billId}/bodyline'\n                    .replace('${' + 'billId' + '}', String(billId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'billId' is not null or undefined\n        if (billId === null || billId === undefined) {\n            throw new Error('Required parameter billId was null or undefined when calling getBillBodylines.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BodylineResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get custom field values for a bill\n     * \n     * @param billId The id of the bill\n     */\n    public getBillCustomFieldsWithHttpInfo(billId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<UDFFieldChild>>> {\n        const path = this.basePath + '/api/v202202/bill/${billId}/udf'\n                    .replace('${' + 'billId' + '}', String(billId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'billId' is not null or undefined\n        if (billId === null || billId === undefined) {\n            throw new Error('Required parameter billId was null or undefined when calling getBillCustomFields.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<UDFFieldChild>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all data necessary to load the bill entry screen\n     * \n     * @param billId \n     */\n    public getBillEntryDataByBillIdWithHttpInfo(billId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BillEntryResponse>> {\n        const path = this.basePath + '/api/v3/bill/${billId}/billEntry'\n                    .replace('${' + 'billId' + '}', String(billId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'billId' is not null or undefined\n        if (billId === null || billId === undefined) {\n            throw new Error('Required parameter billId was null or undefined when calling getBillEntryDataByBillId.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BillEntryResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves bill history from starting at the billId billing period\n     * \n     * @param billId billId to get bill history for\n     * @param numberOfYears optional: Number of years of history to return.  Defaults to 5\n     * @param includeVoid optional: Should voided bills be included.  Defaults to false\n     * @param includeAccrual optional: Should accrual bills be included.  Defaults to false\n     */\n    public getBillHistoryWithHttpInfo(billId: number, numberOfYears?: number, includeVoid?: boolean, includeAccrual?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BillHistoryResponse>>> {\n        const path = this.basePath + '/api/v3/bill/${billId}/billHistory'\n                    .replace('${' + 'billId' + '}', String(billId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'billId' is not null or undefined\n        if (billId === null || billId === undefined) {\n            throw new Error('Required parameter billId was null or undefined when calling getBillHistory.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (includeVoid !== undefined) {\n            queryParameters = queryParameters.set('includeVoid', <any>includeVoid);\n        }\n\n        if (includeAccrual !== undefined) {\n            queryParameters = queryParameters.set('includeAccrual', <any>includeAccrual);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BillHistoryResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves the kickout details associated with a specified bill import task and an optional kickout message.\n     * \n     * @param taskGuid The task GUID to search for. The task must be of type Bill Import.\n     * @param kickoutMessage The optional kickout message to search for.\n     */\n    public getBillImportKickoutDetailsWithHttpInfo(taskGuid: string, kickoutMessage?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BillImportKickoutDetailsResponse>> {\n        const path = this.basePath + '/api/v202401/import/bill/task/${taskGuid}/kickout/detail'\n                    .replace('${' + 'taskGuid' + '}', String(taskGuid));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'taskGuid' is not null or undefined\n        if (taskGuid === null || taskGuid === undefined) {\n            throw new Error('Required parameter taskGuid was null or undefined when calling getBillImportKickoutDetails.');\n        }\n        if (kickoutMessage !== undefined) {\n            queryParameters = queryParameters.set('kickoutMessage', <any>kickoutMessage);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BillImportKickoutDetailsResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves the kickout details associated with a specified bill import task, file and an optional kickout message.\n     * \n     * @param taskGuid The task GUID to search for. The task must be of type Bill Import.\n     * @param filename The kickout file name to search for.\n     * @param kickoutMessage The optional kickout message to search for.\n     */\n    public getBillImportKickoutDetailsByFileWithHttpInfo(taskGuid: string, filename: string, kickoutMessage?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BillImportKickoutDetailsResponse>> {\n        const path = this.basePath + '/api/v202401/import/bill/task/${taskGuid}/kickout/${filename}/detail'\n                    .replace('${' + 'taskGuid' + '}', String(taskGuid))\n                    .replace('${' + 'filename' + '}', String(filename));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'taskGuid' is not null or undefined\n        if (taskGuid === null || taskGuid === undefined) {\n            throw new Error('Required parameter taskGuid was null or undefined when calling getBillImportKickoutDetailsByFile.');\n        }\n        // verify required parameter 'filename' is not null or undefined\n        if (filename === null || filename === undefined) {\n            throw new Error('Required parameter filename was null or undefined when calling getBillImportKickoutDetailsByFile.');\n        }\n        if (kickoutMessage !== undefined) {\n            queryParameters = queryParameters.set('kickoutMessage', <any>kickoutMessage);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BillImportKickoutDetailsResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get bill import workflow settings\n     * \n     */\n    public getBillImportWorkflowSettingsWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BillImportWorkflowSettings>> {\n        const path = this.basePath + '/api/v3/workflow/billImport';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BillImportWorkflowSettings>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves the payment events for a bill\n     * \n     * @param billId Identifier for the bill\n     */\n    public getBillPaymentEventsWithHttpInfo(billId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BillPaymentEventResponse>>> {\n        const path = this.basePath + '/api/v202504/bill/${billId}/paymentEvent'\n                    .replace('${' + 'billId' + '}', String(billId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'billId' is not null or undefined\n        if (billId === null || billId === undefined) {\n            throw new Error('Required parameter billId was null or undefined when calling getBillPaymentEvents.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BillPaymentEventResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves properties for bill view\n     * \n     * @param billId The bill identifier\n     */\n    public getBillViewWithHttpInfo(billId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BillViewResponse>> {\n        const path = this.basePath + '/api/v3/billView/${billId}'\n                    .replace('${' + 'billId' + '}', String(billId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'billId' is not null or undefined\n        if (billId === null || billId === undefined) {\n            throw new Error('Required parameter billId was null or undefined when calling getBillView.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BillViewResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves an array of bills. The array of bills can be filtered by a number of criteria. See the filter property for more details\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getBillsWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BillResponse>>> {\n        const path = this.basePath + '/api/v3/bill';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BillResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get export workflow settings\n     * \n     * @param exportMode The export mode to get settings for, can be &#39;AP&#39;, &#39;GL&#39; or &#39;Payment&#39;\n     */\n    public getExportWorkflowWithHttpInfo(exportMode?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ExportWorkflowSettings>> {\n        const path = this.basePath + '/api/v3/workflow/export';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (exportMode !== undefined) {\n            queryParameters = queryParameters.set('exportMode', <any>exportMode);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ExportWorkflowSettings>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all bills for a particular meter\n     * \n     * @param meterId The meter identifier for which bill values are being retrieved\n     */\n    public getMeterBillsWithHttpInfo(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MeterBillResponse>>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/bill'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getMeterBills.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MeterBillResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves a list of kickout messages associated with a specified bill import task\n     * \n     * @param taskGuid The task GUID to search for. The task must be of type Bill Import.\n     */\n    public getTaskKickoutSummaryWithHttpInfo(taskGuid: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BillImportTaskKickoutSummaryResponse>> {\n        const path = this.basePath + '/api/v202401/import/bill/task/${taskGuid}/kickout/summary'\n                    .replace('${' + 'taskGuid' + '}', String(taskGuid));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'taskGuid' is not null or undefined\n        if (taskGuid === null || taskGuid === undefined) {\n            throw new Error('Required parameter taskGuid was null or undefined when calling getTaskKickoutSummary.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BillImportTaskKickoutSummaryResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves a list of kickout messages associated with a specified bill import task and file.\n     * \n     * @param taskGuid The task GUID to search for. The task must be of type Bill Import.\n     * @param filename The kickout file name to search for.\n     */\n    public getTaskKickoutSummaryByFileWithHttpInfo(taskGuid: string, filename: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BillImportTaskKickoutSummaryResponse>> {\n        const path = this.basePath + '/api/v202401/import/bill/task/${taskGuid}/kickout/${filename}/summary'\n                    .replace('${' + 'taskGuid' + '}', String(taskGuid))\n                    .replace('${' + 'filename' + '}', String(filename));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'taskGuid' is not null or undefined\n        if (taskGuid === null || taskGuid === undefined) {\n            throw new Error('Required parameter taskGuid was null or undefined when calling getTaskKickoutSummaryByFile.');\n        }\n        // verify required parameter 'filename' is not null or undefined\n        if (filename === null || filename === undefined) {\n            throw new Error('Required parameter filename was null or undefined when calling getTaskKickoutSummaryByFile.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BillImportTaskKickoutSummaryResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get the meter bills list\n     * \n     * @param meterId The meter identifier to retrieve bills list for\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public meterBillListWithHttpInfo(meterId: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ListResponse>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/list/bill'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling meterBillList.');\n        }\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ListResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Export list data to excel spreadsheet format\n     * \n     * @param meterId The meter to export bills from\n     */\n    public meterBillListExcelExportWithHttpInfo(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/list/bill/excelexport'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling meterBillListExcelExport.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Generate a bill import file from all bills in a meter bill list.\n     * \n     * @param meterId The meter from which to get all bills\n     */\n    public meterExportHistoricalBillListWithHttpInfo(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<string>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/list/bill/generateimport'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling meterExportHistoricalBillList.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<string>(RequestMethod.Post, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { BudgetCreate } from '../model/budgetCreate';\nimport { BudgetResponse } from '../model/budgetResponse';\nimport { BudgetVersionCreate } from '../model/budgetVersionCreate';\nimport { BudgetVersionResponse } from '../model/budgetVersionResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsBudgetsAndBudgetVersionsCreatespanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Creates a budget\n     * \n     * @param body Data representing the budget being created\n     */\n    public createBudget(body?: BudgetCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BudgetResponse> {\n        return this.createBudgetWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BudgetResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Creates a budget version\n     * \n     * @param budgetId The identifier for the budget to create the version on\n     * @param body Data representing the budgetVersion being created\n     */\n    public createBudgetVersion(budgetId: number, body?: BudgetVersionCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BudgetVersionResponse> {\n        return this.createBudgetVersionWithHttpInfo(budgetId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BudgetVersionResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Creates a budget\n     * \n     * @param body Data representing the budget being created\n     */\n    public createBudgetWithHttpInfo(body?: BudgetCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BudgetResponse>> {\n        const path = this.basePath + '/api/v202310/budget';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BudgetResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Creates a budget version\n     * \n     * @param budgetId The identifier for the budget to create the version on\n     * @param body Data representing the budgetVersion being created\n     */\n    public createBudgetVersionWithHttpInfo(budgetId: number, body?: BudgetVersionCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BudgetVersionResponse>> {\n        const path = this.basePath + '/api/v202310/budget/${budgetId}/version'\n                    .replace('${' + 'budgetId' + '}', String(budgetId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'budgetId' is not null or undefined\n        if (budgetId === null || budgetId === undefined) {\n            throw new Error('Required parameter budgetId was null or undefined when calling createBudgetVersion.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BudgetVersionResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsBudgetsAndBudgetVersionsDeletespanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Deletes a budget\n     * \n     * @param budgetId The identifier for the budget being deleted\n     */\n    public deleteBudget(budgetId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteBudgetWithHttpInfo(budgetId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes a budget version\n     * \n     * @param budgetId The identifier for the budget\n     * @param versionId The identifier for the version being deleted\n     */\n    public deleteBudgetVersion(budgetId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteBudgetVersionWithHttpInfo(budgetId, versionId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Deletes a budget\n     * \n     * @param budgetId The identifier for the budget being deleted\n     */\n    public deleteBudgetWithHttpInfo(budgetId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202310/budget/${budgetId}'\n                    .replace('${' + 'budgetId' + '}', String(budgetId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'budgetId' is not null or undefined\n        if (budgetId === null || budgetId === undefined) {\n            throw new Error('Required parameter budgetId was null or undefined when calling deleteBudget.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Deletes a budget version\n     * \n     * @param budgetId The identifier for the budget\n     * @param versionId The identifier for the version being deleted\n     */\n    public deleteBudgetVersionWithHttpInfo(budgetId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202310/budget/${budgetId}/version/${versionId}'\n                    .replace('${' + 'budgetId' + '}', String(budgetId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'budgetId' is not null or undefined\n        if (budgetId === null || budgetId === undefined) {\n            throw new Error('Required parameter budgetId was null or undefined when calling deleteBudgetVersion.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling deleteBudgetVersion.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { BudgetEdit } from '../model/budgetEdit';\nimport { BudgetResponse } from '../model/budgetResponse';\nimport { BudgetVersionEdit } from '../model/budgetVersionEdit';\nimport { BudgetVersionResponse } from '../model/budgetVersionResponse';\nimport { Setup } from '../model/setup';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsBudgetsAndBudgetVersionsEditspanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Edits a budget\n     * \n     * @param budgetId The identifier for the budget being edited\n     * @param body Data representing the budget being edited\n     */\n    public editBudget(budgetId: number, body?: BudgetEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BudgetResponse> {\n        return this.editBudgetWithHttpInfo(budgetId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BudgetResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits a budget version\n     * \n     * @param budgetId The identifier for the budget\n     * @param versionId The identifier for the version being retrieved\n     * @param body Data representing the budgetVersion being edited\n     */\n    public editBudgetVersion(budgetId: number, versionId: number, body?: BudgetVersionEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BudgetVersionResponse> {\n        return this.editBudgetVersionWithHttpInfo(budgetId, versionId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BudgetVersionResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Import a budget setup sheet\n     * \n     * @param budgetId The budget identifier\n     * @param versionId The budget version identifier\n     * @param body The budget sheet file contents\n     */\n    public postBudgetSetupSheet(budgetId: number, versionId: number, body?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Setup> {\n        return this.postBudgetSetupSheetWithHttpInfo(budgetId, versionId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Setup>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Sets a budget version as active, and all other versions as inactive.\n     * \n     * @param budgetId The identifier for the budget\n     * @param versionId The identifier for the version to set as active\n     */\n    public setBudgetVersionActive(budgetId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BudgetVersionResponse> {\n        return this.setBudgetVersionActiveWithHttpInfo(budgetId, versionId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BudgetVersionResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Edits a budget\n     * \n     * @param budgetId The identifier for the budget being edited\n     * @param body Data representing the budget being edited\n     */\n    public editBudgetWithHttpInfo(budgetId: number, body?: BudgetEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BudgetResponse>> {\n        const path = this.basePath + '/api/v202310/budget/${budgetId}'\n                    .replace('${' + 'budgetId' + '}', String(budgetId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'budgetId' is not null or undefined\n        if (budgetId === null || budgetId === undefined) {\n            throw new Error('Required parameter budgetId was null or undefined when calling editBudget.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BudgetResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edits a budget version\n     * \n     * @param budgetId The identifier for the budget\n     * @param versionId The identifier for the version being retrieved\n     * @param body Data representing the budgetVersion being edited\n     */\n    public editBudgetVersionWithHttpInfo(budgetId: number, versionId: number, body?: BudgetVersionEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BudgetVersionResponse>> {\n        const path = this.basePath + '/api/v202310/budget/${budgetId}/version/${versionId}'\n                    .replace('${' + 'budgetId' + '}', String(budgetId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'budgetId' is not null or undefined\n        if (budgetId === null || budgetId === undefined) {\n            throw new Error('Required parameter budgetId was null or undefined when calling editBudgetVersion.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling editBudgetVersion.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BudgetVersionResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Import a budget setup sheet\n     * \n     * @param budgetId The budget identifier\n     * @param versionId The budget version identifier\n     * @param body The budget sheet file contents\n     */\n    public postBudgetSetupSheetWithHttpInfo(budgetId: number, versionId: number, body?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Setup>> {\n        const path = this.basePath + '/api/v202311/setup/budget/${budgetId}/version/${versionId}'\n                    .replace('${' + 'budgetId' + '}', String(budgetId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'budgetId' is not null or undefined\n        if (budgetId === null || budgetId === undefined) {\n            throw new Error('Required parameter budgetId was null or undefined when calling postBudgetSetupSheet.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling postBudgetSetupSheet.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/vnd.ms-excel'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Setup>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Sets a budget version as active, and all other versions as inactive.\n     * \n     * @param budgetId The identifier for the budget\n     * @param versionId The identifier for the version to set as active\n     */\n    public setBudgetVersionActiveWithHttpInfo(budgetId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BudgetVersionResponse>> {\n        const path = this.basePath + '/api/v202310/budget/${budgetId}/version/${versionId}/active'\n                    .replace('${' + 'budgetId' + '}', String(budgetId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'budgetId' is not null or undefined\n        if (budgetId === null || budgetId === undefined) {\n            throw new Error('Required parameter budgetId was null or undefined when calling setBudgetVersionActive.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling setBudgetVersionActive.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BudgetVersionResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { BudgetDataType } from '../model/budgetDataType';\nimport { BudgetPeriodType } from '../model/budgetPeriodType';\nimport { BudgetResponse } from '../model/budgetResponse';\nimport { BudgetUsageMethod } from '../model/budgetUsageMethod';\nimport { BudgetVersionResponse } from '../model/budgetVersionResponse';\nimport { BudgetVersionSummaryResponse } from '../model/budgetVersionSummaryResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsBudgetsAndBudgetVersionsViewspanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Retrieves the budget by ID\n     * \n     * @param budgetId The identifier for the budget being retrieved\n     */\n    public getBudget(budgetId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BudgetResponse> {\n        return this.getBudgetWithHttpInfo(budgetId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BudgetResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves a list of available budget data types\n     * \n     */\n    public getBudgetDataTypes(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BudgetDataType>> {\n        return this.getBudgetDataTypesWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BudgetDataType>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves a list of budget period types\n     * \n     */\n    public getBudgetPeriodTypes(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BudgetPeriodType>> {\n        return this.getBudgetPeriodTypesWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BudgetPeriodType>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves a list of available budget usage methods\n     * \n     */\n    public getBudgetUsageMethods(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BudgetUsageMethod>> {\n        return this.getBudgetUsageMethodsWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BudgetUsageMethod>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves a specific version for a budget\n     * \n     * @param budgetId The identifier for the budget\n     * @param versionId The identifier for the version being retrieved\n     */\n    public getBudgetVersion(budgetId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BudgetVersionResponse> {\n        return this.getBudgetVersionWithHttpInfo(budgetId, versionId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BudgetVersionResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves the summary for a specific version on a budget\n     * \n     * @param budgetId The identifier for the budget\n     * @param versionId The identifier for the version being retrieved\n     * @param commodityId The optional commodity filter\n     */\n    public getBudgetVersionSummary(budgetId: number, versionId: number, commodityId?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BudgetVersionSummaryResponse> {\n        return this.getBudgetVersionSummaryWithHttpInfo(budgetId, versionId, commodityId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BudgetVersionSummaryResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all the versions for a specified budget\n     * \n     * @param budgetId The identifier for the budget to retrieve all versions\n     */\n    public getBudgetVersions(budgetId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BudgetVersionResponse>> {\n        return this.getBudgetVersionsWithHttpInfo(budgetId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BudgetVersionResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all the budgets\n     * \n     */\n    public getBudgets(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BudgetResponse>> {\n        return this.getBudgetsWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BudgetResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Retrieves the budget by ID\n     * \n     * @param budgetId The identifier for the budget being retrieved\n     */\n    public getBudgetWithHttpInfo(budgetId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BudgetResponse>> {\n        const path = this.basePath + '/api/v202310/budget/${budgetId}'\n                    .replace('${' + 'budgetId' + '}', String(budgetId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'budgetId' is not null or undefined\n        if (budgetId === null || budgetId === undefined) {\n            throw new Error('Required parameter budgetId was null or undefined when calling getBudget.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BudgetResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves a list of available budget data types\n     * \n     */\n    public getBudgetDataTypesWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BudgetDataType>>> {\n        const path = this.basePath + '/api/v202310/budget/dataType';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BudgetDataType>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves a list of budget period types\n     * \n     */\n    public getBudgetPeriodTypesWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BudgetPeriodType>>> {\n        const path = this.basePath + '/api/v202310/budget/periodType';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BudgetPeriodType>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves a list of available budget usage methods\n     * \n     */\n    public getBudgetUsageMethodsWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BudgetUsageMethod>>> {\n        const path = this.basePath + '/api/v202310/budget/usageMethod';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BudgetUsageMethod>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves a specific version for a budget\n     * \n     * @param budgetId The identifier for the budget\n     * @param versionId The identifier for the version being retrieved\n     */\n    public getBudgetVersionWithHttpInfo(budgetId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BudgetVersionResponse>> {\n        const path = this.basePath + '/api/v202310/budget/${budgetId}/version/${versionId}'\n                    .replace('${' + 'budgetId' + '}', String(budgetId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'budgetId' is not null or undefined\n        if (budgetId === null || budgetId === undefined) {\n            throw new Error('Required parameter budgetId was null or undefined when calling getBudgetVersion.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling getBudgetVersion.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BudgetVersionResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves the summary for a specific version on a budget\n     * \n     * @param budgetId The identifier for the budget\n     * @param versionId The identifier for the version being retrieved\n     * @param commodityId The optional commodity filter\n     */\n    public getBudgetVersionSummaryWithHttpInfo(budgetId: number, versionId: number, commodityId?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BudgetVersionSummaryResponse>> {\n        const path = this.basePath + '/api/v202310/budget/${budgetId}/version/${versionId}/summary'\n                    .replace('${' + 'budgetId' + '}', String(budgetId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'budgetId' is not null or undefined\n        if (budgetId === null || budgetId === undefined) {\n            throw new Error('Required parameter budgetId was null or undefined when calling getBudgetVersionSummary.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling getBudgetVersionSummary.');\n        }\n        if (commodityId !== undefined) {\n            queryParameters = queryParameters.set('commodityId', <any>commodityId);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BudgetVersionSummaryResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all the versions for a specified budget\n     * \n     * @param budgetId The identifier for the budget to retrieve all versions\n     */\n    public getBudgetVersionsWithHttpInfo(budgetId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BudgetVersionResponse>>> {\n        const path = this.basePath + '/api/v202310/budget/${budgetId}/version'\n                    .replace('${' + 'budgetId' + '}', String(budgetId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'budgetId' is not null or undefined\n        if (budgetId === null || budgetId === undefined) {\n            throw new Error('Required parameter budgetId was null or undefined when calling getBudgetVersions.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BudgetVersionResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all the budgets\n     * \n     */\n    public getBudgetsWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BudgetResponse>>> {\n        const path = this.basePath + '/api/v202310/budget';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BudgetResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { GroupMeterGroupResponse } from '../model/groupMeterGroupResponse';\nimport { GroupPlaceGroupResponse } from '../model/groupPlaceGroupResponse';\nimport { MeterCategoryRequest } from '../model/meterCategoryRequest';\nimport { MeterCategoryResponse } from '../model/meterCategoryResponse';\nimport { MeterGroupRequest } from '../model/meterGroupRequest';\nimport { PlaceCategoryRequest } from '../model/placeCategoryRequest';\nimport { PlaceCategoryResponse } from '../model/placeCategoryResponse';\nimport { PlaceGroupRequest } from '../model/placeGroupRequest';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsBuildingAndMeterGroupsCreatespanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Create a meter group category\n     * \n     * @param body Data representing the meter group category being created\n     */\n    public createMeterCategory(body?: MeterCategoryRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<MeterCategoryResponse> {\n        return this.createMeterCategoryWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<MeterCategoryResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Create a meter group\n     * \n     * @param body Data representing the meter group being created\n     */\n    public createMeterGroup(body?: MeterGroupRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<GroupMeterGroupResponse> {\n        return this.createMeterGroupWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<GroupMeterGroupResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Creates a place group category\n     * \n     * @param body Data representing the place group category being created\n     */\n    public createPlaceCategory(body?: PlaceCategoryRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<PlaceCategoryResponse> {\n        return this.createPlaceCategoryWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<PlaceCategoryResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Create a place group\n     * \n     * @param body Data representing the place group being created\n     */\n    public createPlaceGroup(body?: PlaceGroupRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<GroupPlaceGroupResponse> {\n        return this.createPlaceGroupWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<GroupPlaceGroupResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit a meter group\n     * \n     * @param meterGroupId Id of the group to edit\n     * @param body Data representing the meter group being edited\n     */\n    public editMeterGroup(meterGroupId: number, body?: MeterGroupRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<GroupMeterGroupResponse> {\n        return this.editMeterGroupWithHttpInfo(meterGroupId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<GroupMeterGroupResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit a place group\n     * \n     * @param placeGroupId Id of the group to edit\n     * @param body Data representing the place group being edited\n     */\n    public editPlaceGroup(placeGroupId: number, body?: PlaceGroupRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<GroupPlaceGroupResponse> {\n        return this.editPlaceGroupWithHttpInfo(placeGroupId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<GroupPlaceGroupResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Create a meter group category\n     * \n     * @param body Data representing the meter group category being created\n     */\n    public createMeterCategoryWithHttpInfo(body?: MeterCategoryRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<MeterCategoryResponse>> {\n        const path = this.basePath + '/api/v3/meterGroup/category';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<MeterCategoryResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Create a meter group\n     * \n     * @param body Data representing the meter group being created\n     */\n    public createMeterGroupWithHttpInfo(body?: MeterGroupRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<GroupMeterGroupResponse>> {\n        const path = this.basePath + '/api/v3/meterGroup';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<GroupMeterGroupResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Creates a place group category\n     * \n     * @param body Data representing the place group category being created\n     */\n    public createPlaceCategoryWithHttpInfo(body?: PlaceCategoryRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<PlaceCategoryResponse>> {\n        const path = this.basePath + '/api/v3/placeGroup/category';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<PlaceCategoryResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Create a place group\n     * \n     * @param body Data representing the place group being created\n     */\n    public createPlaceGroupWithHttpInfo(body?: PlaceGroupRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<GroupPlaceGroupResponse>> {\n        const path = this.basePath + '/api/v3/placeGroup';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<GroupPlaceGroupResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Edit a meter group\n     * \n     * @param meterGroupId Id of the group to edit\n     * @param body Data representing the meter group being edited\n     */\n    public editMeterGroupWithHttpInfo(meterGroupId: number, body?: MeterGroupRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<GroupMeterGroupResponse>> {\n        const path = this.basePath + '/api/v3/meterGroup/${meterGroupId}'\n                    .replace('${' + 'meterGroupId' + '}', String(meterGroupId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterGroupId' is not null or undefined\n        if (meterGroupId === null || meterGroupId === undefined) {\n            throw new Error('Required parameter meterGroupId was null or undefined when calling editMeterGroup.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<GroupMeterGroupResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edit a place group\n     * \n     * @param placeGroupId Id of the group to edit\n     * @param body Data representing the place group being edited\n     */\n    public editPlaceGroupWithHttpInfo(placeGroupId: number, body?: PlaceGroupRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<GroupPlaceGroupResponse>> {\n        const path = this.basePath + '/api/v3/placeGroup/${placeGroupId}'\n                    .replace('${' + 'placeGroupId' + '}', String(placeGroupId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeGroupId' is not null or undefined\n        if (placeGroupId === null || placeGroupId === undefined) {\n            throw new Error('Required parameter placeGroupId was null or undefined when calling editPlaceGroup.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<GroupPlaceGroupResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsBuildingAndMeterGroupsDeletespanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Delete a meter group category\n     * \n     * @param categoryId Id of the category to delete\n     */\n    public deleteMeterCategory(categoryId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteMeterCategoryWithHttpInfo(categoryId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete a user-created meter group\n     * \n     * @param meterGroupId \n     */\n    public deleteMeterGroup(meterGroupId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteMeterGroupWithHttpInfo(meterGroupId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete a place group category\n     * \n     * @param categoryId Id of the category to delete\n     */\n    public deletePlaceCategory(categoryId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deletePlaceCategoryWithHttpInfo(categoryId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete a user-created place group\n     * \n     * @param placeGroupId \n     */\n    public deletePlaceGroup(placeGroupId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deletePlaceGroupWithHttpInfo(placeGroupId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Delete a meter group category\n     * \n     * @param categoryId Id of the category to delete\n     */\n    public deleteMeterCategoryWithHttpInfo(categoryId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/meterGroup/category/${categoryId}'\n                    .replace('${' + 'categoryId' + '}', String(categoryId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'categoryId' is not null or undefined\n        if (categoryId === null || categoryId === undefined) {\n            throw new Error('Required parameter categoryId was null or undefined when calling deleteMeterCategory.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Delete a user-created meter group\n     * \n     * @param meterGroupId \n     */\n    public deleteMeterGroupWithHttpInfo(meterGroupId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/meterGroup/${meterGroupId}'\n                    .replace('${' + 'meterGroupId' + '}', String(meterGroupId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterGroupId' is not null or undefined\n        if (meterGroupId === null || meterGroupId === undefined) {\n            throw new Error('Required parameter meterGroupId was null or undefined when calling deleteMeterGroup.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Delete a place group category\n     * \n     * @param categoryId Id of the category to delete\n     */\n    public deletePlaceCategoryWithHttpInfo(categoryId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/placeGroup/category/${categoryId}'\n                    .replace('${' + 'categoryId' + '}', String(categoryId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'categoryId' is not null or undefined\n        if (categoryId === null || categoryId === undefined) {\n            throw new Error('Required parameter categoryId was null or undefined when calling deletePlaceCategory.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Delete a user-created place group\n     * \n     * @param placeGroupId \n     */\n    public deletePlaceGroupWithHttpInfo(placeGroupId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/placeGroup/${placeGroupId}'\n                    .replace('${' + 'placeGroupId' + '}', String(placeGroupId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeGroupId' is not null or undefined\n        if (placeGroupId === null || placeGroupId === undefined) {\n            throw new Error('Required parameter placeGroupId was null or undefined when calling deletePlaceGroup.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { GroupMemberRequest } from '../model/groupMemberRequest';\nimport { GroupMeterGroupResponse } from '../model/groupMeterGroupResponse';\nimport { GroupPlaceGroupMember } from '../model/groupPlaceGroupMember';\nimport { GroupPlaceGroupResponse } from '../model/groupPlaceGroupResponse';\nimport { MeterCategoryRequest } from '../model/meterCategoryRequest';\nimport { MeterCategoryResponse } from '../model/meterCategoryResponse';\nimport { MeterGroupMember } from '../model/meterGroupMember';\nimport { MeterGroupMemberChild } from '../model/meterGroupMemberChild';\nimport { MeterGroupResponse } from '../model/meterGroupResponse';\nimport { PlaceCategoryRequest } from '../model/placeCategoryRequest';\nimport { PlaceCategoryResponse } from '../model/placeCategoryResponse';\nimport { PlaceGroupMember } from '../model/placeGroupMember';\nimport { PlaceGroupResponse } from '../model/placeGroupResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsBuildingAndMeterGroupsEditspanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Update a meter group category\n     * \n     * @param categoryId Id of the category to update\n     * @param body Data to update the meter group category\n     */\n    public editMeterCategory(categoryId: number, body?: MeterCategoryRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<MeterCategoryResponse> {\n        return this.editMeterCategoryWithHttpInfo(categoryId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<MeterCategoryResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits a meter&#39;s group memberships.  Note that all groups a meter should belong to must be passed in. Passing in one group means that the meter will belong to one group only,  even if it previously belonged to several. Only manual groups assignments can be changed; auto groups are unaffected.\n     * \n     * @param meterId The meter identifier whose group memberships are being edited\n     * @param body The groups the meter will belong to\n     */\n    public editMeterGroupMembership(meterId: number, body?: Array<MeterGroupMember>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MeterGroupResponse>> {\n        return this.editMeterGroupMembershipWithHttpInfo(meterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MeterGroupResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Update a place group category\n     * \n     * @param categoryId Id of the category to update\n     * @param body Data to update the place group category\n     */\n    public editPlaceCategory(categoryId: number, body?: PlaceCategoryRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<PlaceCategoryResponse> {\n        return this.editPlaceCategoryWithHttpInfo(categoryId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<PlaceCategoryResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits a place&#39;s group memberships.  Note that all groups a place should belong to must be passed in. Passing in one group means that the place will belong to one group only,  even if it previously belonged to several.  Only manual groups assignments can be changed; auto groups are unaffected.\n     * \n     * @param placeId The place identifier whose group memberships are being edited\n     * @param body The groups the place will belong to\n     */\n    public editPlaceGroupMembership(placeId: number, body?: Array<PlaceGroupMember>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PlaceGroupResponse>> {\n        return this.editPlaceGroupMembershipWithHttpInfo(placeId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PlaceGroupResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Include all group members in charts\n     * \n     * @param meterGroupId \n     */\n    public includeAllMeterGroupMemberInCharts(meterGroupId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.includeAllMeterGroupMemberInChartsWithHttpInfo(meterGroupId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Include all group members in charts\n     * \n     * @param placeGroupId \n     */\n    public includeAllPlaceGroupMemberInCharts(placeGroupId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.includeAllPlaceGroupMemberInChartsWithHttpInfo(placeGroupId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Refreshes group membership for all user defined auto groups\n     * \n     */\n    public recalculateAllUserMeterAutoGroupsMembership(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.recalculateAllUserMeterAutoGroupsMembershipWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Refreshes group membership for all user defined auto groups\n     * \n     */\n    public recalculateAllUserPlaceAutoGroupsMembership(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.recalculateAllUserPlaceAutoGroupsMembershipWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Refreshes group membership for a user defined auto group\n     * \n     * @param meterGroupId The meter group to refresh\n     */\n    public recalculateUserMeterAutoGroupMemebership(meterGroupId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<GroupMeterGroupResponse> {\n        return this.recalculateUserMeterAutoGroupMemebershipWithHttpInfo(meterGroupId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<GroupMeterGroupResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Refreshes group membership for a user defined auto group\n     * \n     * @param placeGroupId The place group to refresh\n     */\n    public recalculateUserPlaceAutoGroupMemebership(placeGroupId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<GroupPlaceGroupResponse> {\n        return this.recalculateUserPlaceAutoGroupMemebershipWithHttpInfo(placeGroupId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<GroupPlaceGroupResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Update a group member&#39;s include in charts flag\n     * \n     * @param meterGroupId \n     * @param meterId \n     * @param body \n     */\n    public updateMeterGroupMember(meterGroupId: number, meterId: number, body?: GroupMemberRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<MeterGroupMemberChild> {\n        return this.updateMeterGroupMemberWithHttpInfo(meterGroupId, meterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<MeterGroupMemberChild>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Update a group member&#39;s include in charts flag\n     * \n     * @param placeGroupId \n     * @param placeId \n     * @param body \n     */\n    public updatePlaceGroupMember(placeGroupId: number, placeId: number, body?: GroupMemberRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<GroupPlaceGroupMember> {\n        return this.updatePlaceGroupMemberWithHttpInfo(placeGroupId, placeId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<GroupPlaceGroupMember>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Update a meter group category\n     * \n     * @param categoryId Id of the category to update\n     * @param body Data to update the meter group category\n     */\n    public editMeterCategoryWithHttpInfo(categoryId: number, body?: MeterCategoryRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<MeterCategoryResponse>> {\n        const path = this.basePath + '/api/v3/meterGroup/category/${categoryId}'\n                    .replace('${' + 'categoryId' + '}', String(categoryId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'categoryId' is not null or undefined\n        if (categoryId === null || categoryId === undefined) {\n            throw new Error('Required parameter categoryId was null or undefined when calling editMeterCategory.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<MeterCategoryResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edits a meter&#39;s group memberships.  Note that all groups a meter should belong to must be passed in. Passing in one group means that the meter will belong to one group only,  even if it previously belonged to several. Only manual groups assignments can be changed; auto groups are unaffected.\n     * \n     * @param meterId The meter identifier whose group memberships are being edited\n     * @param body The groups the meter will belong to\n     */\n    public editMeterGroupMembershipWithHttpInfo(meterId: number, body?: Array<MeterGroupMember>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MeterGroupResponse>>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/group'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling editMeterGroupMembership.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MeterGroupResponse>>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Update a place group category\n     * \n     * @param categoryId Id of the category to update\n     * @param body Data to update the place group category\n     */\n    public editPlaceCategoryWithHttpInfo(categoryId: number, body?: PlaceCategoryRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<PlaceCategoryResponse>> {\n        const path = this.basePath + '/api/v3/placeGroup/category/${categoryId}'\n                    .replace('${' + 'categoryId' + '}', String(categoryId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'categoryId' is not null or undefined\n        if (categoryId === null || categoryId === undefined) {\n            throw new Error('Required parameter categoryId was null or undefined when calling editPlaceCategory.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<PlaceCategoryResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edits a place&#39;s group memberships.  Note that all groups a place should belong to must be passed in. Passing in one group means that the place will belong to one group only,  even if it previously belonged to several.  Only manual groups assignments can be changed; auto groups are unaffected.\n     * \n     * @param placeId The place identifier whose group memberships are being edited\n     * @param body The groups the place will belong to\n     */\n    public editPlaceGroupMembershipWithHttpInfo(placeId: number, body?: Array<PlaceGroupMember>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PlaceGroupResponse>>> {\n        const path = this.basePath + '/api/v3/place/${placeId}/group'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling editPlaceGroupMembership.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PlaceGroupResponse>>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Include all group members in charts\n     * \n     * @param meterGroupId \n     */\n    public includeAllMeterGroupMemberInChartsWithHttpInfo(meterGroupId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/meterGroup/${meterGroupId}/member/includeInCharts'\n                    .replace('${' + 'meterGroupId' + '}', String(meterGroupId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterGroupId' is not null or undefined\n        if (meterGroupId === null || meterGroupId === undefined) {\n            throw new Error('Required parameter meterGroupId was null or undefined when calling includeAllMeterGroupMemberInCharts.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Include all group members in charts\n     * \n     * @param placeGroupId \n     */\n    public includeAllPlaceGroupMemberInChartsWithHttpInfo(placeGroupId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/placeGroup/${placeGroupId}/member/includeInCharts'\n                    .replace('${' + 'placeGroupId' + '}', String(placeGroupId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeGroupId' is not null or undefined\n        if (placeGroupId === null || placeGroupId === undefined) {\n            throw new Error('Required parameter placeGroupId was null or undefined when calling includeAllPlaceGroupMemberInCharts.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Refreshes group membership for all user defined auto groups\n     * \n     */\n    public recalculateAllUserMeterAutoGroupsMembershipWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/meterGroup/updateUserAutoGroups';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Refreshes group membership for all user defined auto groups\n     * \n     */\n    public recalculateAllUserPlaceAutoGroupsMembershipWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/placeGroup/updateUserAutoGroups';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Refreshes group membership for a user defined auto group\n     * \n     * @param meterGroupId The meter group to refresh\n     */\n    public recalculateUserMeterAutoGroupMemebershipWithHttpInfo(meterGroupId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<GroupMeterGroupResponse>> {\n        const path = this.basePath + '/api/v3/meterGroup/${meterGroupId}/updateUserAutoGroup'\n                    .replace('${' + 'meterGroupId' + '}', String(meterGroupId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterGroupId' is not null or undefined\n        if (meterGroupId === null || meterGroupId === undefined) {\n            throw new Error('Required parameter meterGroupId was null or undefined when calling recalculateUserMeterAutoGroupMemebership.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<GroupMeterGroupResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Refreshes group membership for a user defined auto group\n     * \n     * @param placeGroupId The place group to refresh\n     */\n    public recalculateUserPlaceAutoGroupMemebershipWithHttpInfo(placeGroupId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<GroupPlaceGroupResponse>> {\n        const path = this.basePath + '/api/v3/placeGroup/${placeGroupId}/updateUserAutoGroup'\n                    .replace('${' + 'placeGroupId' + '}', String(placeGroupId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeGroupId' is not null or undefined\n        if (placeGroupId === null || placeGroupId === undefined) {\n            throw new Error('Required parameter placeGroupId was null or undefined when calling recalculateUserPlaceAutoGroupMemebership.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<GroupPlaceGroupResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Update a group member&#39;s include in charts flag\n     * \n     * @param meterGroupId \n     * @param meterId \n     * @param body \n     */\n    public updateMeterGroupMemberWithHttpInfo(meterGroupId: number, meterId: number, body?: GroupMemberRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<MeterGroupMemberChild>> {\n        const path = this.basePath + '/api/v3/meterGroup/${meterGroupId}/member/${meterId}'\n                    .replace('${' + 'meterGroupId' + '}', String(meterGroupId))\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterGroupId' is not null or undefined\n        if (meterGroupId === null || meterGroupId === undefined) {\n            throw new Error('Required parameter meterGroupId was null or undefined when calling updateMeterGroupMember.');\n        }\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling updateMeterGroupMember.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<MeterGroupMemberChild>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Update a group member&#39;s include in charts flag\n     * \n     * @param placeGroupId \n     * @param placeId \n     * @param body \n     */\n    public updatePlaceGroupMemberWithHttpInfo(placeGroupId: number, placeId: number, body?: GroupMemberRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<GroupPlaceGroupMember>> {\n        const path = this.basePath + '/api/v3/placeGroup/${placeGroupId}/member/${placeId}'\n                    .replace('${' + 'placeGroupId' + '}', String(placeGroupId))\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeGroupId' is not null or undefined\n        if (placeGroupId === null || placeGroupId === undefined) {\n            throw new Error('Required parameter placeGroupId was null or undefined when calling updatePlaceGroupMember.');\n        }\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling updatePlaceGroupMember.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<GroupPlaceGroupMember>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { EsaPlaceCreate } from '../model/esaPlaceCreate';\nimport { EsaPlaceResponse } from '../model/esaPlaceResponse';\nimport { PlaceCreate } from '../model/placeCreate';\nimport { PlaceResponse } from '../model/placeResponse';\nimport { PrimaryUseCreate } from '../model/primaryUseCreate';\nimport { PrimaryUseResponse } from '../model/primaryUseResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsBuildingsAndOrganizationsCreatespanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Creates an ESA place\n     * \n     * @param body Data representing the ESA place being created\n     */\n    public createEsaPlace(body?: EsaPlaceCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EsaPlaceResponse> {\n        return this.createEsaPlaceWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EsaPlaceResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Creates a place\n     * \n     * @param body Data representing the place being created\n     */\n    public createPlace(body?: PlaceCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<PlaceResponse> {\n        return this.createPlaceWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<PlaceResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Creates a Primary Use\n     * \n     * @param body Data representing the Primary Use being created\n     */\n    public createPrimaryUse(body?: PrimaryUseCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<PrimaryUseResponse> {\n        return this.createPrimaryUseWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<PrimaryUseResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Creates an ESA place\n     * \n     * @param body Data representing the ESA place being created\n     */\n    public createEsaPlaceWithHttpInfo(body?: EsaPlaceCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EsaPlaceResponse>> {\n        const path = this.basePath + '/api/v202406/esaplace';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EsaPlaceResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Creates a place\n     * \n     * @param body Data representing the place being created\n     */\n    public createPlaceWithHttpInfo(body?: PlaceCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<PlaceResponse>> {\n        const path = this.basePath + '/api/v3/place';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<PlaceResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Creates a Primary Use\n     * \n     * @param body Data representing the Primary Use being created\n     */\n    public createPrimaryUseWithHttpInfo(body?: PrimaryUseCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<PrimaryUseResponse>> {\n        const path = this.basePath + '/api/v3/primaryuse';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<PrimaryUseResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsBuildingsAndOrganizationsDeletespanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Deletes an ESA place\n     * \n     * @param placeId The identifier for the ESA place being deleted\n     */\n    public deleteEsaPlace(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteEsaPlaceWithHttpInfo(placeId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes a place\n     * \n     * @param placeId The identifier for the place being deleted\n     */\n    public deletePlace(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deletePlaceWithHttpInfo(placeId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes a primary use\n     * \n     * @param primaryUseId The identifier for the primary use being deleted\n     */\n    public deletePrimaryUse(primaryUseId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deletePrimaryUseWithHttpInfo(primaryUseId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Deletes an ESA place\n     * \n     * @param placeId The identifier for the ESA place being deleted\n     */\n    public deleteEsaPlaceWithHttpInfo(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202406/esaplace/${placeId}'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling deleteEsaPlace.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Deletes a place\n     * \n     * @param placeId The identifier for the place being deleted\n     */\n    public deletePlaceWithHttpInfo(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/place/${placeId}'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling deletePlace.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Deletes a primary use\n     * \n     * @param primaryUseId The identifier for the primary use being deleted\n     */\n    public deletePrimaryUseWithHttpInfo(primaryUseId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/primaryuse/${primaryUseId}'\n                    .replace('${' + 'primaryUseId' + '}', String(primaryUseId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'primaryUseId' is not null or undefined\n        if (primaryUseId === null || primaryUseId === undefined) {\n            throw new Error('Required parameter primaryUseId was null or undefined when calling deletePrimaryUse.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { BenchmarkValueRequest } from '../model/benchmarkValueRequest';\nimport { BenchmarkValuesResponse } from '../model/benchmarkValuesResponse';\nimport { EditEsaPlaceSizesRequest } from '../model/editEsaPlaceSizesRequest';\nimport { EnergyStarPlaceLinkRequest } from '../model/energyStarPlaceLinkRequest';\nimport { EnergyStarPlaceLinkResponse } from '../model/energyStarPlaceLinkResponse';\nimport { EnergyStarSettingsResponse } from '../model/energyStarSettingsResponse';\nimport { EsaPlaceDataRollupRequest } from '../model/esaPlaceDataRollupRequest';\nimport { EsaPlaceEdit } from '../model/esaPlaceEdit';\nimport { EsaPlaceResponse } from '../model/esaPlaceResponse';\nimport { OkObjectResult } from '../model/okObjectResult';\nimport { PlaceEdit } from '../model/placeEdit';\nimport { PlaceResponse } from '../model/placeResponse';\nimport { PlaceSizeChild } from '../model/placeSizeChild';\nimport { PlaceSizeCreate } from '../model/placeSizeCreate';\nimport { PlaceSubmissionTypeRequest } from '../model/placeSubmissionTypeRequest';\nimport { PlaceTypeRequest } from '../model/placeTypeRequest';\nimport { PlaceTypeResponse } from '../model/placeTypeResponse';\nimport { ScheduleCreate } from '../model/scheduleCreate';\nimport { ScheduleEdit } from '../model/scheduleEdit';\nimport { ScheduleResponse } from '../model/scheduleResponse';\nimport { UDFFieldChild } from '../model/uDFFieldChild';\nimport { UDFValue } from '../model/uDFValue';\nimport { UpdateResult } from '../model/updateResult';\nimport { WatticsSite } from '../model/watticsSite';\nimport { WatticsSiteRequest } from '../model/watticsSiteRequest';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsBuildingsAndOrganizationsEditspanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Accept any pending property and meter share requests from ENERGY STAR Portfolio Manager\n     * \n     */\n    public acceptPropertyAndMeterSharingRequests(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EnergyStarSettingsResponse> {\n        return this.acceptPropertyAndMeterSharingRequestsWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EnergyStarSettingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Set and Reset the data Rollup from esa place\n     * \n     * @param body The list of placeIds and If the Rollup is true or false\n     */\n    public bulkEditDataRollup(body?: EsaPlaceDataRollupRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.bulkEditDataRollupWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Creates a place benchmark value If a preceding benchmark value exists, the preceding record&#39;s end date will be changed to match the created records begin date If a succeeding benchmark value exists, the created record&#39;s end date will match the succeeding benchmarks begin date\n     * \n     * @param benchmarkIndicator Indicator for the benchmark, can be 1, 2, or 3\n     * @param placeId The place that the benchmark is on\n     * @param body The new begin date and value for the benchmark\n     */\n    public createPlaceBenchmarkValue(benchmarkIndicator: number, placeId: number, body?: BenchmarkValueRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BenchmarkValuesResponse> {\n        return this.createPlaceBenchmarkValueWithHttpInfo(benchmarkIndicator, placeId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BenchmarkValuesResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Creates a place size version If a preceding place size version exists, the preceding record&#39;s end date will be changed to match the created record&#39;s begin date If a succeeding place size version exists the created records end date will match the succeeding version&#39;s begin date\n     * \n     * @param placeId The identifier of the place to add a place size to\n     * @param body Data representing the place size being created\n     */\n    public createPlaceSize(placeId: number, body?: PlaceSizeCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<PlaceSizeChild> {\n        return this.createPlaceSizeWithHttpInfo(placeId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<PlaceSizeChild>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Create a place type\n     * New place types will not be considered structures\n     * @param body Definition of new place type\n     */\n    public createPlaceType(body?: PlaceTypeRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<PlaceTypeResponse> {\n        return this.createPlaceTypeWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<PlaceTypeResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Creates a schedule\n     * \n     * @param body Data representing the schedule being created\n     */\n    public createSchedule(body?: ScheduleCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ScheduleResponse> {\n        return this.createScheduleWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ScheduleResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete a single benchmark value. If a preceding benchmark value exists, the preceding record’s end date will be changed to prevent any gaps in benchmark values\n     * \n     * @param benchmarkIndicator Indicator for the benchmark\n     * @param placeId Indicator for the place\n     * @param placeBenchmarkId Indicator for the individual benchmark value\n     */\n    public deleteBenchmarkValue(benchmarkIndicator: number, placeId: number, placeBenchmarkId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteBenchmarkValueWithHttpInfo(benchmarkIndicator, placeId, placeBenchmarkId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete a place size version The preceding version&#39;s end date will be shifted to the deleted record&#39;s end date to prevent any gaps\n     * \n     * @param placeId The identifier of the place\n     * @param placeSizeId The identifier of the place size\n     */\n    public deletePlaceSize(placeId: number, placeSizeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deletePlaceSizeWithHttpInfo(placeId, placeSizeId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes the place type\n     * \n     * @param placeTypeId Unique identifier for the place type\n     */\n    public deletePlaceType(placeTypeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deletePlaceTypeWithHttpInfo(placeTypeId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes a schedule\n     * \n     * @param scheduleId The schedule identifier\n     */\n    public deleteSchedule(scheduleId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteScheduleWithHttpInfo(scheduleId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit the ENERGY STAR linking information for this place and its meters. Set PmPropertyId/PmMeterId to null to unlink a property/meter. Set PmMeterId to -1 to auto-create a new meter.\n     * \n     * @param placeId The place identifier\n     * @param body Data representing the place link being edited\n     */\n    public editEnergyStarPlaceLink(placeId: number, body?: EnergyStarPlaceLinkRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EnergyStarPlaceLinkResponse> {\n        return this.editEnergyStarPlaceLinkWithHttpInfo(placeId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EnergyStarPlaceLinkResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits an ESA place\n     * \n     * @param placeId The identifier for the ESA place being edited\n     * @param body Data representing the ESA place being edited\n     */\n    public editEsaPlace(placeId: number, body?: EsaPlaceEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EsaPlaceResponse> {\n        return this.editEsaPlaceWithHttpInfo(placeId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EsaPlaceResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Manages the schedules of a place\n     * \n     * @param placeId The place identifier\n     * @param body A list of schedule identifiers to assign\n     */\n    public editEsaPlaceSchedules(placeId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<ScheduleResponse>> {\n        return this.editEsaPlaceSchedulesWithHttpInfo(placeId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<ScheduleResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Manages the version history for a single ESA place.  This endpoint handles Creating, Editing, and Deleting place sizes for ESA places in bulk.\n     * \n     * @param placeId \n     * @param body \n     */\n    public editEsaPlaceSizeHistory(placeId: number, body?: EditEsaPlaceSizesRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PlaceSizeChild>> {\n        return this.editEsaPlaceSizeHistoryWithHttpInfo(placeId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PlaceSizeChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits a place\n     * \n     * @param placeId The identifier for the place being edited\n     * @param body Data representing the place being edited\n     */\n    public editPlace(placeId: number, body?: PlaceEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<PlaceResponse> {\n        return this.editPlaceWithHttpInfo(placeId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<PlaceResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit all values for a benchmark factor on a place\n     * \n     * @param benchmarkIndicator Indicator for the benchmark\n     * @param placeId \n     * @param body \n     */\n    public editPlaceBenchmarkValues(benchmarkIndicator: number, placeId: number, body?: Array<BenchmarkValueRequest>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BenchmarkValuesResponse> {\n        return this.editPlaceBenchmarkValuesWithHttpInfo(benchmarkIndicator, placeId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BenchmarkValuesResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * API endpoint which takes care of Create, Edit and Delete of new place sizes in bulk\n     * \n     * @param placeId The identifier of the place\n     * @param body Data representing the place size being created\n     */\n    public editPlaceSizeList(placeId: number, body?: Array<PlaceSizeCreate>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PlaceSizeChild>> {\n        return this.editPlaceSizeListWithHttpInfo(placeId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PlaceSizeChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit a current place type\n     * \n     * @param placeTypeId Unique identifier for the place type\n     * @param body Definition of new place type\n     */\n    public editPlaceType(placeTypeId: number, body?: PlaceTypeRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<PlaceTypeResponse> {\n        return this.editPlaceTypeWithHttpInfo(placeTypeId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<PlaceTypeResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits user defined field / custom field values for a particular place\n     * \n     * @param placeId The identifier for the place\n     * @param body Data representing the place user defined fields / custom fields being edited\n     */\n    public editPlaceUDFs(placeId: number, body?: Array<UDFValue>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<UDFFieldChild>> {\n        return this.editPlaceUDFsWithHttpInfo(placeId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<UDFFieldChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits a schedule\n     * \n     * @param scheduleId The schedule identifier\n     * @param body Data representing the schedule being edited\n     */\n    public editSchedule(scheduleId: number, body?: ScheduleEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ScheduleResponse> {\n        return this.editScheduleWithHttpInfo(scheduleId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ScheduleResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit SmartAnalytics (Wattics) data on a place\n     * \n     * @param placeId The place identifier for the place to edit\n     * @param body Identifier for the SmartAnalytics (Wattics) site to assign to the place\n     */\n    public editWatticsSiteLink(placeId: number, body?: WatticsSiteRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<WatticsSite> {\n        return this.editWatticsSiteLinkWithHttpInfo(placeId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<WatticsSite>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Move list of places to be under a parent place\n     * \n     * @param parentPlaceId The identifier for the new parent place\n     * @param body List of place identifiers to move\n     */\n    public moveEsaPlace(parentPlaceId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.moveEsaPlaceWithHttpInfo(parentPlaceId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Move list of places to be under parentPlaceId\n     * \n     * @param parentPlaceId The identifier for the new parent place\n     * @param body List of placeIds to move under the parentPlaceId\n     */\n    public movePlace(parentPlaceId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.movePlaceWithHttpInfo(parentPlaceId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Unlink a list of places and their child meters from ENERGY STAR\n     * \n     * @param body List of place identifiers to unlink from ENERGY STAR\n     */\n    public unlinkPlacesAndChildMetersFromEnergyStar(body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.unlinkPlacesAndChildMetersFromEnergyStarWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Update a list of places to be submitted to ENERGY STAR manually or automatically\n     * \n     * @param body The list of places to update, as well as the submission type to set\n     */\n    public updateEnergyStarSubmissionType(body?: PlaceSubmissionTypeRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.updateEnergyStarSubmissionTypeWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Updates a place benchmark value If the begin date is being modified, the following will happen: * Records that now precede and previously preceded this benchmark will have their end dates modified to prevent gaps in benchmarks * If a succeeding benchmark value exists for the new begin date, the end date will be modified to match the succeeding benchmarks end date\n     * \n     * @param benchmarkIndicator Indicator for the benchmark, can be 1, 2, or 3\n     * @param placeId The place that the benchmark is on\n     * @param placeBenchmarkId The identifier for the benchmark being updated\n     * @param body The new begin date and value for the benchmark\n     */\n    public updatePlaceBenchmarkValue(benchmarkIndicator: number, placeId: number, placeBenchmarkId: number, body?: BenchmarkValueRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BenchmarkValuesResponse> {\n        return this.updatePlaceBenchmarkValueWithHttpInfo(benchmarkIndicator, placeId, placeBenchmarkId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BenchmarkValuesResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Accept any pending property and meter share requests from ENERGY STAR Portfolio Manager\n     * \n     */\n    public acceptPropertyAndMeterSharingRequestsWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EnergyStarSettingsResponse>> {\n        const path = this.basePath + '/api/v202110/energyStar/acceptShares';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EnergyStarSettingsResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Set and Reset the data Rollup from esa place\n     * \n     * @param body The list of placeIds and If the Rollup is true or false\n     */\n    public bulkEditDataRollupWithHttpInfo(body?: EsaPlaceDataRollupRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202406/esaplace/dataRollup';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Creates a place benchmark value If a preceding benchmark value exists, the preceding record&#39;s end date will be changed to match the created records begin date If a succeeding benchmark value exists, the created record&#39;s end date will match the succeeding benchmarks begin date\n     * \n     * @param benchmarkIndicator Indicator for the benchmark, can be 1, 2, or 3\n     * @param placeId The place that the benchmark is on\n     * @param body The new begin date and value for the benchmark\n     */\n    public createPlaceBenchmarkValueWithHttpInfo(benchmarkIndicator: number, placeId: number, body?: BenchmarkValueRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BenchmarkValuesResponse>> {\n        const path = this.basePath + '/api/v3/placeBenchmark/${benchmarkIndicator}/place/${placeId}/benchmarkValue'\n                    .replace('${' + 'benchmarkIndicator' + '}', String(benchmarkIndicator))\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'benchmarkIndicator' is not null or undefined\n        if (benchmarkIndicator === null || benchmarkIndicator === undefined) {\n            throw new Error('Required parameter benchmarkIndicator was null or undefined when calling createPlaceBenchmarkValue.');\n        }\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling createPlaceBenchmarkValue.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BenchmarkValuesResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Creates a place size version If a preceding place size version exists, the preceding record&#39;s end date will be changed to match the created record&#39;s begin date If a succeeding place size version exists the created records end date will match the succeeding version&#39;s begin date\n     * \n     * @param placeId The identifier of the place to add a place size to\n     * @param body Data representing the place size being created\n     */\n    public createPlaceSizeWithHttpInfo(placeId: number, body?: PlaceSizeCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<PlaceSizeChild>> {\n        const path = this.basePath + '/api/v3/place/${placeId}/size'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling createPlaceSize.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<PlaceSizeChild>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Create a place type\n     * New place types will not be considered structures\n     * @param body Definition of new place type\n     */\n    public createPlaceTypeWithHttpInfo(body?: PlaceTypeRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<PlaceTypeResponse>> {\n        const path = this.basePath + '/api/v3/place/placetype';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<PlaceTypeResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Creates a schedule\n     * \n     * @param body Data representing the schedule being created\n     */\n    public createScheduleWithHttpInfo(body?: ScheduleCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ScheduleResponse>> {\n        const path = this.basePath + '/api/v202406/schedule';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ScheduleResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Delete a single benchmark value. If a preceding benchmark value exists, the preceding record’s end date will be changed to prevent any gaps in benchmark values\n     * \n     * @param benchmarkIndicator Indicator for the benchmark\n     * @param placeId Indicator for the place\n     * @param placeBenchmarkId Indicator for the individual benchmark value\n     */\n    public deleteBenchmarkValueWithHttpInfo(benchmarkIndicator: number, placeId: number, placeBenchmarkId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/placeBenchmark/${benchmarkIndicator}/place/${placeId}/benchmarkValue/${placeBenchmarkId}'\n                    .replace('${' + 'benchmarkIndicator' + '}', String(benchmarkIndicator))\n                    .replace('${' + 'placeId' + '}', String(placeId))\n                    .replace('${' + 'placeBenchmarkId' + '}', String(placeBenchmarkId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'benchmarkIndicator' is not null or undefined\n        if (benchmarkIndicator === null || benchmarkIndicator === undefined) {\n            throw new Error('Required parameter benchmarkIndicator was null or undefined when calling deleteBenchmarkValue.');\n        }\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling deleteBenchmarkValue.');\n        }\n        // verify required parameter 'placeBenchmarkId' is not null or undefined\n        if (placeBenchmarkId === null || placeBenchmarkId === undefined) {\n            throw new Error('Required parameter placeBenchmarkId was null or undefined when calling deleteBenchmarkValue.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Delete a place size version The preceding version&#39;s end date will be shifted to the deleted record&#39;s end date to prevent any gaps\n     * \n     * @param placeId The identifier of the place\n     * @param placeSizeId The identifier of the place size\n     */\n    public deletePlaceSizeWithHttpInfo(placeId: number, placeSizeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/place/${placeId}/size/${placeSizeId}'\n                    .replace('${' + 'placeId' + '}', String(placeId))\n                    .replace('${' + 'placeSizeId' + '}', String(placeSizeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling deletePlaceSize.');\n        }\n        // verify required parameter 'placeSizeId' is not null or undefined\n        if (placeSizeId === null || placeSizeId === undefined) {\n            throw new Error('Required parameter placeSizeId was null or undefined when calling deletePlaceSize.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Deletes the place type\n     * \n     * @param placeTypeId Unique identifier for the place type\n     */\n    public deletePlaceTypeWithHttpInfo(placeTypeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/place/placetype/${placeTypeId}'\n                    .replace('${' + 'placeTypeId' + '}', String(placeTypeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeTypeId' is not null or undefined\n        if (placeTypeId === null || placeTypeId === undefined) {\n            throw new Error('Required parameter placeTypeId was null or undefined when calling deletePlaceType.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Deletes a schedule\n     * \n     * @param scheduleId The schedule identifier\n     */\n    public deleteScheduleWithHttpInfo(scheduleId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202406/schedule/${scheduleId}'\n                    .replace('${' + 'scheduleId' + '}', String(scheduleId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'scheduleId' is not null or undefined\n        if (scheduleId === null || scheduleId === undefined) {\n            throw new Error('Required parameter scheduleId was null or undefined when calling deleteSchedule.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Edit the ENERGY STAR linking information for this place and its meters. Set PmPropertyId/PmMeterId to null to unlink a property/meter. Set PmMeterId to -1 to auto-create a new meter.\n     * \n     * @param placeId The place identifier\n     * @param body Data representing the place link being edited\n     */\n    public editEnergyStarPlaceLinkWithHttpInfo(placeId: number, body?: EnergyStarPlaceLinkRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EnergyStarPlaceLinkResponse>> {\n        const path = this.basePath + '/api/v3/place/${placeId}/energyStar/link'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling editEnergyStarPlaceLink.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EnergyStarPlaceLinkResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edits an ESA place\n     * \n     * @param placeId The identifier for the ESA place being edited\n     * @param body Data representing the ESA place being edited\n     */\n    public editEsaPlaceWithHttpInfo(placeId: number, body?: EsaPlaceEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EsaPlaceResponse>> {\n        const path = this.basePath + '/api/v202406/esaplace/${placeId}'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling editEsaPlace.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EsaPlaceResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Manages the schedules of a place\n     * \n     * @param placeId The place identifier\n     * @param body A list of schedule identifiers to assign\n     */\n    public editEsaPlaceSchedulesWithHttpInfo(placeId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<ScheduleResponse>>> {\n        const path = this.basePath + '/api/v202407/esaplace/${placeId}/schedule'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling editEsaPlaceSchedules.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<ScheduleResponse>>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Manages the version history for a single ESA place.  This endpoint handles Creating, Editing, and Deleting place sizes for ESA places in bulk.\n     * \n     * @param placeId \n     * @param body \n     */\n    public editEsaPlaceSizeHistoryWithHttpInfo(placeId: number, body?: EditEsaPlaceSizesRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PlaceSizeChild>>> {\n        const path = this.basePath + '/api/v202406/esaplace/${placeId}/placeSize'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling editEsaPlaceSizeHistory.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PlaceSizeChild>>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edits a place\n     * \n     * @param placeId The identifier for the place being edited\n     * @param body Data representing the place being edited\n     */\n    public editPlaceWithHttpInfo(placeId: number, body?: PlaceEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<PlaceResponse>> {\n        const path = this.basePath + '/api/v3/place/${placeId}'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling editPlace.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<PlaceResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edit all values for a benchmark factor on a place\n     * \n     * @param benchmarkIndicator Indicator for the benchmark\n     * @param placeId \n     * @param body \n     */\n    public editPlaceBenchmarkValuesWithHttpInfo(benchmarkIndicator: number, placeId: number, body?: Array<BenchmarkValueRequest>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BenchmarkValuesResponse>> {\n        const path = this.basePath + '/api/v3/placeBenchmark/${benchmarkIndicator}/place/${placeId}'\n                    .replace('${' + 'benchmarkIndicator' + '}', String(benchmarkIndicator))\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'benchmarkIndicator' is not null or undefined\n        if (benchmarkIndicator === null || benchmarkIndicator === undefined) {\n            throw new Error('Required parameter benchmarkIndicator was null or undefined when calling editPlaceBenchmarkValues.');\n        }\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling editPlaceBenchmarkValues.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BenchmarkValuesResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * API endpoint which takes care of Create, Edit and Delete of new place sizes in bulk\n     * \n     * @param placeId The identifier of the place\n     * @param body Data representing the place size being created\n     */\n    public editPlaceSizeListWithHttpInfo(placeId: number, body?: Array<PlaceSizeCreate>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PlaceSizeChild>>> {\n        const path = this.basePath + '/api/v3/place/${placeId}/size'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling editPlaceSizeList.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PlaceSizeChild>>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edit a current place type\n     * \n     * @param placeTypeId Unique identifier for the place type\n     * @param body Definition of new place type\n     */\n    public editPlaceTypeWithHttpInfo(placeTypeId: number, body?: PlaceTypeRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<PlaceTypeResponse>> {\n        const path = this.basePath + '/api/v3/place/placetype/${placeTypeId}'\n                    .replace('${' + 'placeTypeId' + '}', String(placeTypeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeTypeId' is not null or undefined\n        if (placeTypeId === null || placeTypeId === undefined) {\n            throw new Error('Required parameter placeTypeId was null or undefined when calling editPlaceType.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<PlaceTypeResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edits user defined field / custom field values for a particular place\n     * \n     * @param placeId The identifier for the place\n     * @param body Data representing the place user defined fields / custom fields being edited\n     */\n    public editPlaceUDFsWithHttpInfo(placeId: number, body?: Array<UDFValue>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<UDFFieldChild>>> {\n        const path = this.basePath + '/api/v3/place/${placeId}/udf'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling editPlaceUDFs.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<UDFFieldChild>>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edits a schedule\n     * \n     * @param scheduleId The schedule identifier\n     * @param body Data representing the schedule being edited\n     */\n    public editScheduleWithHttpInfo(scheduleId: number, body?: ScheduleEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ScheduleResponse>> {\n        const path = this.basePath + '/api/v202406/schedule/${scheduleId}'\n                    .replace('${' + 'scheduleId' + '}', String(scheduleId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'scheduleId' is not null or undefined\n        if (scheduleId === null || scheduleId === undefined) {\n            throw new Error('Required parameter scheduleId was null or undefined when calling editSchedule.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ScheduleResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edit SmartAnalytics (Wattics) data on a place\n     * \n     * @param placeId The place identifier for the place to edit\n     * @param body Identifier for the SmartAnalytics (Wattics) site to assign to the place\n     */\n    public editWatticsSiteLinkWithHttpInfo(placeId: number, body?: WatticsSiteRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<WatticsSite>> {\n        const path = this.basePath + '/api/v202302/place/${placeId}/watticsSite'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling editWatticsSiteLink.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<WatticsSite>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Move list of places to be under a parent place\n     * \n     * @param parentPlaceId The identifier for the new parent place\n     * @param body List of place identifiers to move\n     */\n    public moveEsaPlaceWithHttpInfo(parentPlaceId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v202406/esaplace/parentPlace/${parentPlaceId}/place'\n                    .replace('${' + 'parentPlaceId' + '}', String(parentPlaceId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'parentPlaceId' is not null or undefined\n        if (parentPlaceId === null || parentPlaceId === undefined) {\n            throw new Error('Required parameter parentPlaceId was null or undefined when calling moveEsaPlace.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Move list of places to be under parentPlaceId\n     * \n     * @param parentPlaceId The identifier for the new parent place\n     * @param body List of placeIds to move under the parentPlaceId\n     */\n    public movePlaceWithHttpInfo(parentPlaceId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/parentPlace/${parentPlaceId}/place'\n                    .replace('${' + 'parentPlaceId' + '}', String(parentPlaceId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'parentPlaceId' is not null or undefined\n        if (parentPlaceId === null || parentPlaceId === undefined) {\n            throw new Error('Required parameter parentPlaceId was null or undefined when calling movePlace.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Unlink a list of places and their child meters from ENERGY STAR\n     * \n     * @param body List of place identifiers to unlink from ENERGY STAR\n     */\n    public unlinkPlacesAndChildMetersFromEnergyStarWithHttpInfo(body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v202110/place/energyStar/unlink';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Update a list of places to be submitted to ENERGY STAR manually or automatically\n     * \n     * @param body The list of places to update, as well as the submission type to set\n     */\n    public updateEnergyStarSubmissionTypeWithHttpInfo(body?: PlaceSubmissionTypeRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v202110/place/energyStar/submissionType';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Updates a place benchmark value If the begin date is being modified, the following will happen: * Records that now precede and previously preceded this benchmark will have their end dates modified to prevent gaps in benchmarks * If a succeeding benchmark value exists for the new begin date, the end date will be modified to match the succeeding benchmarks end date\n     * \n     * @param benchmarkIndicator Indicator for the benchmark, can be 1, 2, or 3\n     * @param placeId The place that the benchmark is on\n     * @param placeBenchmarkId The identifier for the benchmark being updated\n     * @param body The new begin date and value for the benchmark\n     */\n    public updatePlaceBenchmarkValueWithHttpInfo(benchmarkIndicator: number, placeId: number, placeBenchmarkId: number, body?: BenchmarkValueRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BenchmarkValuesResponse>> {\n        const path = this.basePath + '/api/v3/placeBenchmark/${benchmarkIndicator}/place/${placeId}/benchmarkValue/${placeBenchmarkId}'\n                    .replace('${' + 'benchmarkIndicator' + '}', String(benchmarkIndicator))\n                    .replace('${' + 'placeId' + '}', String(placeId))\n                    .replace('${' + 'placeBenchmarkId' + '}', String(placeBenchmarkId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'benchmarkIndicator' is not null or undefined\n        if (benchmarkIndicator === null || benchmarkIndicator === undefined) {\n            throw new Error('Required parameter benchmarkIndicator was null or undefined when calling updatePlaceBenchmarkValue.');\n        }\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling updatePlaceBenchmarkValue.');\n        }\n        // verify required parameter 'placeBenchmarkId' is not null or undefined\n        if (placeBenchmarkId === null || placeBenchmarkId === undefined) {\n            throw new Error('Required parameter placeBenchmarkId was null or undefined when calling updatePlaceBenchmarkValue.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BenchmarkValuesResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { BenchmarkValuesResponse } from '../model/benchmarkValuesResponse';\nimport { CostCenterChild } from '../model/costCenterChild';\nimport { EnergyProjectResponse } from '../model/energyProjectResponse';\nimport { EnergyProjectType } from '../model/energyProjectType';\nimport { EnergyStarCommodityMeterTypeMapping } from '../model/energyStarCommodityMeterTypeMapping';\nimport { EnergyStarPlaceHierarchyResponse } from '../model/energyStarPlaceHierarchyResponse';\nimport { EnergyStarPlaceLinkResponse } from '../model/energyStarPlaceLinkResponse';\nimport { EnergyStarPmMeter } from '../model/energyStarPmMeter';\nimport { EnergyStarPmProperty } from '../model/energyStarPmProperty';\nimport { EnergyStarSettingsResponse } from '../model/energyStarSettingsResponse';\nimport { EsaPlaceResponse } from '../model/esaPlaceResponse';\nimport { HierarchicalPlaces } from '../model/hierarchicalPlaces';\nimport { HierarchicalSpaces } from '../model/hierarchicalSpaces';\nimport { PlaceDigestActualAndCalendarizedMonthlyResponse } from '../model/placeDigestActualAndCalendarizedMonthlyResponse';\nimport { PlaceDigestActualAndCalendarizedYearlyResponse } from '../model/placeDigestActualAndCalendarizedYearlyResponse';\nimport { PlaceDigestComparisonResponse } from '../model/placeDigestComparisonResponse';\nimport { PlaceDigestEnergyUseIntensity } from '../model/placeDigestEnergyUseIntensity';\nimport { PlaceDigestNormalizedMonthlyResponse } from '../model/placeDigestNormalizedMonthlyResponse';\nimport { PlaceDigestNormalizedYearlyResponse } from '../model/placeDigestNormalizedYearlyResponse';\nimport { PlaceDigestSavingsMonthlyResponse } from '../model/placeDigestSavingsMonthlyResponse';\nimport { PlaceDigestSavingsYearlyResponse } from '../model/placeDigestSavingsYearlyResponse';\nimport { PlaceGroupResponse } from '../model/placeGroupResponse';\nimport { PlaceResponse } from '../model/placeResponse';\nimport { PlaceSizeChild } from '../model/placeSizeChild';\nimport { PlaceSizeResponse } from '../model/placeSizeResponse';\nimport { PlaceUDFResponse } from '../model/placeUDFResponse';\nimport { ProjectManagerResponse } from '../model/projectManagerResponse';\nimport { ScheduleResponse } from '../model/scheduleResponse';\nimport { UDFFieldChild } from '../model/uDFFieldChild';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsBuildingsAndOrganizationsViewspanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * For a list of topmost places, get associated topmost cost centers.\n     * \n     * @param body List of placeIds to get associated topmost cost centers.\n     */\n    public availableCostCentersForTopmostPlaces(body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<CostCenterChild>> {\n        return this.availableCostCentersForTopmostPlacesWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<CostCenterChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Download file for a energy project custom field\n     * \n     * @param energyProjectId The id of the energy project\n     * @param udfId The id of the custom field\n     */\n    public downloadEnergyProjectCustomFields(energyProjectId: number, udfId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.downloadEnergyProjectCustomFieldsWithHttpInfo(energyProjectId, udfId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Download file for a place custom field\n     * \n     * @param placeId \n     * @param udfId \n     */\n    public downloadPlaceCustomFieldFile(placeId: number, udfId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.downloadPlaceCustomFieldFileWithHttpInfo(placeId, udfId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves benchmark values for a place\n     * \n     * @param benchmarkIndicator Indicator for the benchmark\n     * @param placeId Identifier for the place\n     */\n    public getBenchmarkValues(benchmarkIndicator: number, placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BenchmarkValuesResponse> {\n        return this.getBenchmarkValuesWithHttpInfo(benchmarkIndicator, placeId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BenchmarkValuesResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get an energy project\n     * \n     * @param projectId The identifier for the energy project to retrieve\n     */\n    public getEnergyProject(projectId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EnergyProjectResponse> {\n        return this.getEnergyProjectWithHttpInfo(projectId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EnergyProjectResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get custom field values for a energy project\n     * \n     * @param energyProjectId The id of the energy project\n     */\n    public getEnergyProjectCustomFields(energyProjectId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<UDFFieldChild>> {\n        return this.getEnergyProjectCustomFieldsWithHttpInfo(energyProjectId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<UDFFieldChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get the energy project managers\n     * \n     * @param query \n     */\n    public getEnergyProjectManager(query?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<ProjectManagerResponse>> {\n        return this.getEnergyProjectManagerWithHttpInfo(query, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<ProjectManagerResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get all the energy project types\n     * \n     */\n    public getEnergyProjectTypes(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<EnergyProjectType>> {\n        return this.getEnergyProjectTypesWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<EnergyProjectType>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all Energy Projects for a particular place by placeId. For organizations it will be the rollup of its children&#39;s energy projects\n     * \n     * @param placeId The place identifier for which energy projects are being retrieved\n     */\n    public getEnergyProjectsForPlace(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<EnergyProjectResponse>> {\n        return this.getEnergyProjectsForPlaceWithHttpInfo(placeId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<EnergyProjectResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a list of all commodities and, if configured, their mappings in ENERGY STAR\n     * \n     */\n    public getEnergyStarCommodityMappings(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<EnergyStarCommodityMeterTypeMapping>> {\n        return this.getEnergyStarCommodityMappingsWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<EnergyStarCommodityMeterTypeMapping>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get the ENERGY STAR info for a place.\n     * \n     * @param placeId The place identifier\n     * @param verbose true by default.               When set to false the API will perform faster but will only retrieve PmPropertyId and PmPropertyName from Portfolio Manager.             PmPropertyUseType, PmFloorArea, PmFloorAreaUnits will be null.\n     */\n    public getEnergyStarPlace(placeId: number, verbose?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EnergyStarPmProperty> {\n        return this.getEnergyStarPlaceWithHttpInfo(placeId, verbose, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EnergyStarPmProperty>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get this place&#39;s ENERGY STAR child places\n     * \n     * @param placeId The place identifier\n     * @param filter \n     */\n    public getEnergyStarPlaceHierarchy(placeId: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<EnergyStarPlaceHierarchyResponse>> {\n        return this.getEnergyStarPlaceHierarchyWithHttpInfo(placeId, filter, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<EnergyStarPlaceHierarchyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get the ENERGY STAR linking information for this place and its meters.  PmPropertyId and PmMeterId will be null if no link yet exists.\n     * \n     * @param placeId The place identifier\n     */\n    public getEnergyStarPlaceLink(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EnergyStarPlaceLinkResponse> {\n        return this.getEnergyStarPlaceLinkWithHttpInfo(placeId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EnergyStarPlaceLinkResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get the ENERGY STAR metrics for a place.\n     * \n     * @param placeId The place identifier\n     * @param numberOfYears The number of years to go back from most recent score. Defaults to 2 years. If 0 is provided, will only include current score.\n     */\n    public getEnergyStarPlaceMetrics(placeId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EnergyStarPlaceHierarchyResponse> {\n        return this.getEnergyStarPlaceMetricsWithHttpInfo(placeId, numberOfYears, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EnergyStarPlaceHierarchyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get settings for ENERGY STAR submissions\n     * \n     */\n    public getEnergyStarSettings(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EnergyStarSettingsResponse> {\n        return this.getEnergyStarSettingsWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EnergyStarSettingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves an ESA place by place ID\n     * \n     * @param placeId The identifier for the ESA place being retrieved\n     */\n    public getEsaPlace(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EsaPlaceResponse> {\n        return this.getEsaPlaceWithHttpInfo(placeId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EsaPlaceResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves the current sizes of all of an ESA place&#39;s children.  If a place has no children, nothing is returned.\n     * \n     * @param placeId \n     */\n    public getEsaPlaceChildrenSizes(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PlaceSizeResponse>> {\n        return this.getEsaPlaceChildrenSizesWithHttpInfo(placeId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PlaceSizeResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Gets the schedules of a place\n     * \n     * @param placeId The place identifier\n     */\n    public getEsaPlaceSchedules(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<ScheduleResponse>> {\n        return this.getEsaPlaceSchedulesWithHttpInfo(placeId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<ScheduleResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves the entire size history of an ESA place by ID\n     * \n     * @param placeId \n     */\n    public getEsaPlaceSizeHistory(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PlaceSizeChild>> {\n        return this.getEsaPlaceSizeHistoryWithHttpInfo(placeId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PlaceSizeChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all ESA places\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getEsaPlaces(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<EsaPlaceResponse>> {\n        return this.getEsaPlacesWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<EsaPlaceResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves energy use intensity data for a place.  If data is requested for an organization, then all the places under the organization will be rolled up.\n     * \n     * @param placeId The place to retrieve data for\n     */\n    public getEuiChartData(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PlaceDigestEnergyUseIntensity>> {\n        return this.getEuiChartDataWithHttpInfo(placeId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PlaceDigestEnergyUseIntensity>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves one place\n     * \n     * @param placeId The identifier for the place being retrieved\n     */\n    public getPlace(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<PlaceResponse> {\n        return this.getPlaceWithHttpInfo(placeId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<PlaceResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by building/organization for a given number of years- Result includes cost, use, unit cost on a monthly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param placeId The place to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for actual and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     */\n    public getPlaceActualMonthly(placeId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<PlaceDigestActualAndCalendarizedMonthlyResponse> {\n        return this.getPlaceActualMonthlyWithHttpInfo(placeId, numberOfYears, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<PlaceDigestActualAndCalendarizedMonthlyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by building/organization for a given number of years- Result includes cost, use, unit cost on a monthly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for actual and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlaceActualMonthlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PlaceDigestActualAndCalendarizedMonthlyResponse>> {\n        return this.getPlaceActualMonthlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PlaceDigestActualAndCalendarizedMonthlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by building/organization for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param placeId The place to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     */\n    public getPlaceActualYearly(placeId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<PlaceDigestActualAndCalendarizedYearlyResponse> {\n        return this.getPlaceActualYearlyWithHttpInfo(placeId, numberOfYears, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<PlaceDigestActualAndCalendarizedYearlyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by building/organization for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlaceActualYearlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PlaceDigestActualAndCalendarizedYearlyResponse>> {\n        return this.getPlaceActualYearlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PlaceDigestActualAndCalendarizedYearlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Return the total cost and cost for each commodity under a place for comparison Example calculating the current and previous ranges:  Today is 2022-10-06 chartMonthsToExclude &#x3D; 2, numMonths &#x3D; 6, comparisonYearsAgo &#x3D; 3 CurrentPeriodRange is 202203 - 202208 and PreviousPeriodRange is 201903 - 201908\n     * \n     * @param placeId Id of the place to lookup\n     * @param chartMonthsToExclude Optional, the number of months to exclude from intensity data, 0 includes all months including the current one. Defaults to the system setting otherwise 0.\n     * @param numMonths Optional, the number of months of intensity data to include, the end month is respective of chartMonthsToExclude. Defaults to 12.\n     * @param comparisonYearsAgo The comparisonYearsAgo is the number of years to go back to do the comparison. Defaults to 1.\n     */\n    public getPlaceCalendarizedCostComparison(placeId: number, chartMonthsToExclude?: number, numMonths?: number, comparisonYearsAgo?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<PlaceDigestComparisonResponse> {\n        return this.getPlaceCalendarizedCostComparisonWithHttpInfo(placeId, chartMonthsToExclude, numMonths, comparisonYearsAgo, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<PlaceDigestComparisonResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Return the total ghg and ghg for each commodity under a place for comparison Example calculating the current and previous ranges:  Today is 2022-10-06 chartMonthsToExclude &#x3D; 2, numMonths &#x3D; 6, comparisonYearsAgo &#x3D; 3 CurrentPeriodRange is 202203 - 202208 and PreviousPeriodRange is 201903 - 201908\n     * \n     * @param placeId Id of the place to lookup\n     * @param chartMonthsToExclude Optional, the number of months to exclude from intensity data, 0 includes all months including the current one. Defaults to the system setting otherwise 0.\n     * @param numMonths Optional, the number of months of intensity data to include, the end month is respective of chartMonthsToExclude. Defaults to 12.\n     * @param comparisonYearsAgo The comparisonYearsAgo is the number of years to go back to do the comparison. Defaults to 1.\n     */\n    public getPlaceCalendarizedGhgComparison(placeId: number, chartMonthsToExclude?: number, numMonths?: number, comparisonYearsAgo?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<PlaceDigestComparisonResponse> {\n        return this.getPlaceCalendarizedGhgComparisonWithHttpInfo(placeId, chartMonthsToExclude, numMonths, comparisonYearsAgo, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<PlaceDigestComparisonResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up calendarized billing data by building/organization for a given number of years- Result includes cost, use, unit cost on a monthly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param placeId The place to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for calendarized and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     */\n    public getPlaceCalendarizedMonthly(placeId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<PlaceDigestActualAndCalendarizedMonthlyResponse> {\n        return this.getPlaceCalendarizedMonthlyWithHttpInfo(placeId, numberOfYears, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<PlaceDigestActualAndCalendarizedMonthlyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up calendarized billing data by building/organization for a given number of years- Result includes cost, use, unit cost on a monthly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for calendarized and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlaceCalendarizedMonthlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PlaceDigestActualAndCalendarizedMonthlyResponse>> {\n        return this.getPlaceCalendarizedMonthlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PlaceDigestActualAndCalendarizedMonthlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up calendarized billing data by building/organization for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param placeId The place to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     */\n    public getPlaceCalendarizedYearly(placeId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<PlaceDigestActualAndCalendarizedYearlyResponse> {\n        return this.getPlaceCalendarizedYearlyWithHttpInfo(placeId, numberOfYears, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<PlaceDigestActualAndCalendarizedYearlyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up calendarized billing data by building/organization for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlaceCalendarizedYearlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PlaceDigestActualAndCalendarizedYearlyResponse>> {\n        return this.getPlaceCalendarizedYearlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PlaceDigestActualAndCalendarizedYearlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all Place Groups for a particular place by placeId\n     * \n     * @param placeId The place identifier for which group values are being retrieved\n     */\n    public getPlaceGroups(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PlaceGroupResponse>> {\n        return this.getPlaceGroupsWithHttpInfo(placeId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PlaceGroupResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up normalized billing data by building/organization for a given number of years- Result includes cost, use, unit cost on a monthly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param placeId The place to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for normalized and savings, and 24 or 26 (if 13 accounting periods) for normalized and normalized)\n     */\n    public getPlaceNomalizedMonthly(placeId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<PlaceDigestNormalizedMonthlyResponse> {\n        return this.getPlaceNomalizedMonthlyWithHttpInfo(placeId, numberOfYears, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<PlaceDigestNormalizedMonthlyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up normalized billing data by building/organization for a given number of years- Result includes use on a monthly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for normalized and savings, and 24 or 26 (if 13 accounting periods) for normalized and normalized)\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlaceNomalizedMonthlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PlaceDigestNormalizedMonthlyResponse>> {\n        return this.getPlaceNomalizedMonthlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PlaceDigestNormalizedMonthlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Return the total use and use for each commodity under a place for comparison Example calculating the current and previous ranges:  Today is 2022-10-06 chartMonthsToExclude &#x3D; 2, numMonths &#x3D; 6, comparisonYearsAgo &#x3D; 3 CurrentPeriodRange is 202203 - 202208 and PreviousPeriodRange is 201903 - 201908\n     * \n     * @param placeId Id of the place to lookup\n     * @param chartMonthsToExclude Optional, the number of months to exclude from intensity data, 0 includes all months including the current one. Defaults to the system setting otherwise 0.\n     * @param numMonths Optional, the number of months of intensity data to include, the end month is respective of chartMonthsToExclude. Defaults to 12.\n     * @param comparisonYearsAgo The comparisonYearsAgo is the number of years to go back to do the comparison. Defaults to 1.\n     */\n    public getPlaceNormalizedUseComparison(placeId: number, chartMonthsToExclude?: number, numMonths?: number, comparisonYearsAgo?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<PlaceDigestComparisonResponse> {\n        return this.getPlaceNormalizedUseComparisonWithHttpInfo(placeId, chartMonthsToExclude, numMonths, comparisonYearsAgo, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<PlaceDigestComparisonResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up normalized billing data by building/organization for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param placeId The place to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     */\n    public getPlaceNormalizedYearly(placeId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<PlaceDigestNormalizedYearlyResponse> {\n        return this.getPlaceNormalizedYearlyWithHttpInfo(placeId, numberOfYears, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<PlaceDigestNormalizedYearlyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up normalized billing data by building/organization for a given number of years- Result include use on an yearly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlaceNormalizedYearlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PlaceDigestNormalizedYearlyResponse>> {\n        return this.getPlaceNormalizedYearlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PlaceDigestNormalizedYearlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up savings data by building/organization for a given number of years- Result includes cost, use, unit cost on a monthly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param placeId The place to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for actual and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     */\n    public getPlaceSavingsMonthly(placeId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<PlaceDigestSavingsMonthlyResponse> {\n        return this.getPlaceSavingsMonthlyWithHttpInfo(placeId, numberOfYears, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<PlaceDigestSavingsMonthlyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up savings data by building/organization for a given number of years- Result includes cost and use savings on a monthly basis.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years/24 months\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlaceSavingsMonthlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PlaceDigestSavingsMonthlyResponse>> {\n        return this.getPlaceSavingsMonthlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PlaceDigestSavingsMonthlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * \n     * \n     * @param placeId \n     * @param numberOfYears \n     */\n    public getPlaceSavingsYearly(placeId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<PlaceDigestSavingsYearlyResponse> {\n        return this.getPlaceSavingsYearlyWithHttpInfo(placeId, numberOfYears, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<PlaceDigestSavingsYearlyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up savings billing data by building/organization for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes a commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlaceSavingsYearlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PlaceDigestSavingsYearlyResponse>> {\n        return this.getPlaceSavingsYearlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PlaceDigestSavingsYearlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves a place size record for a particular place\n     * \n     * @param placeId The identifier for the place being retrieved\n     * @param placeSizeId The identifier for the place size being retrieved\n     */\n    public getPlaceSize(placeId: number, placeSizeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<PlaceSizeChild> {\n        return this.getPlaceSizeWithHttpInfo(placeId, placeSizeId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<PlaceSizeChild>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all place size records for a particular place\n     * \n     * @param placeId The identifier for the place being retrieved\n     */\n    public getPlaceSizes(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PlaceSizeChild>> {\n        return this.getPlaceSizesWithHttpInfo(placeId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PlaceSizeChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all user defined fields / custom fields for a particular place\n     * \n     * @param placeId The place identifier for which user defined field / custom field values are being retrieved\n     */\n    public getPlaceUdfs(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<UDFFieldChild>> {\n        return this.getPlaceUdfsWithHttpInfo(placeId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<UDFFieldChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all places\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlaces(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PlaceResponse>> {\n        return this.getPlacesWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PlaceResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all user defined fields / custom fields for all places\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlacesUdfs(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PlaceUDFResponse>> {\n        return this.getPlacesUdfsWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PlaceUDFResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get list of Portfolio Manager properties\n     * \n     * @param includeOnlyUnlinked Include only unlinked properties\n     * @param verbose true by default.               When set to false the API will perform faster but will only retrieve PmPropertyId and PmPropertyName from Portfolio Manager.             PmPropertyUseType, PmFloorArea, PmFloorAreaUnits will be null.\n     */\n    public getPortfolioManagerProperties(includeOnlyUnlinked?: boolean, verbose?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<EnergyStarPmProperty>> {\n        return this.getPortfolioManagerPropertiesWithHttpInfo(includeOnlyUnlinked, verbose, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<EnergyStarPmProperty>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a Portfolio Manager property\n     * \n     * @param pmPropertyId Portfolio Manager property identifier\n     * @param verbose true by default.               When set to false the API will perform faster but will only retrieve PmPropertyId and PmPropertyName from Portfolio Manager.             PmPropertyUseType, PmFloorArea, PmFloorAreaUnits will be null.\n     */\n    public getPortfolioManagerProperty(pmPropertyId: number, verbose?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EnergyStarPmProperty> {\n        return this.getPortfolioManagerPropertyWithHttpInfo(pmPropertyId, verbose, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EnergyStarPmProperty>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get list of Portfolio Manager meters for a property\n     * \n     * @param pmPropertyId Portfolio Manager property identifier\n     * @param includeOnlyUnlinked Include only unlinked meters\n     * @param verbose true by default.               When set to false the API will perform faster but will only retrieve PmMeterId and PmMeterName from Portfolio Manager.             PmCommodityCode and PmUnitCode will be null.\n     */\n    public getPortfolioManagerPropertyMeters(pmPropertyId: number, includeOnlyUnlinked?: boolean, verbose?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<EnergyStarPmMeter>> {\n        return this.getPortfolioManagerPropertyMetersWithHttpInfo(pmPropertyId, includeOnlyUnlinked, verbose, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<EnergyStarPmMeter>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves the specified schedule\n     * \n     * @param scheduleId The schedule identifier\n     */\n    public getSchedule(scheduleId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ScheduleResponse> {\n        return this.getScheduleWithHttpInfo(scheduleId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ScheduleResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all schedules\n     * \n     */\n    public getSchedules(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<ScheduleResponse>> {\n        return this.getSchedulesWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<ScheduleResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Returns the data point ancestry information, useful for populating a tree of spaces\n     * \n     * @param dataPointId Data point Id\n     */\n    public hierarchicalAncestryDataPoints(dataPointId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HierarchicalSpaces> {\n        return this.hierarchicalAncestryDataPointsWithHttpInfo(dataPointId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<HierarchicalSpaces>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Returns meter ancestry information, useful for populating a tree of places\n     * \n     * @param meterId Meter ID\n     */\n    public hierarchicalAncestryMeters(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HierarchicalPlaces> {\n        return this.hierarchicalAncestryMetersWithHttpInfo(meterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<HierarchicalPlaces>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Returns place ancestry information, useful for populating a tree of places\n     * \n     * @param placeId Place ID\n     */\n    public hierarchicalAncestryPlaces(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HierarchicalPlaces> {\n        return this.hierarchicalAncestryPlacesWithHttpInfo(placeId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<HierarchicalPlaces>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Returns the space ancestry information, useful for populating a tree of spaces\n     * \n     * @param placeId Place Id\n     */\n    public hierarchicalAncestrySpaces(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HierarchicalSpaces> {\n        return this.hierarchicalAncestrySpacesWithHttpInfo(placeId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<HierarchicalSpaces>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Returns place descendant information, useful for expanding a place node\n     * \n     * @param placeId Place ID\n     */\n    public hierarchicalPlace(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HierarchicalPlaces> {\n        return this.hierarchicalPlaceWithHttpInfo(placeId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<HierarchicalPlaces>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Returns the space descendant information, useful for expanding a space node\n     * \n     * @param placeId Place Id\n     */\n    public hierarchicalSpace(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HierarchicalSpaces> {\n        return this.hierarchicalSpaceWithHttpInfo(placeId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<HierarchicalSpaces>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * For a list of topmost places, get associated topmost cost centers.\n     * \n     * @param body List of placeIds to get associated topmost cost centers.\n     */\n    public availableCostCentersForTopmostPlacesWithHttpInfo(body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<CostCenterChild>>> {\n        const path = this.basePath + '/api/v3/hierarchy/place/availableCostCenters';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<CostCenterChild>>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Download file for a energy project custom field\n     * \n     * @param energyProjectId The id of the energy project\n     * @param udfId The id of the custom field\n     */\n    public downloadEnergyProjectCustomFieldsWithHttpInfo(energyProjectId: number, udfId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202501/energyproject/${energyProjectId}/udf/${udfId}/download'\n                    .replace('${' + 'energyProjectId' + '}', String(energyProjectId))\n                    .replace('${' + 'udfId' + '}', String(udfId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'energyProjectId' is not null or undefined\n        if (energyProjectId === null || energyProjectId === undefined) {\n            throw new Error('Required parameter energyProjectId was null or undefined when calling downloadEnergyProjectCustomFields.');\n        }\n        // verify required parameter 'udfId' is not null or undefined\n        if (udfId === null || udfId === undefined) {\n            throw new Error('Required parameter udfId was null or undefined when calling downloadEnergyProjectCustomFields.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Download file for a place custom field\n     * \n     * @param placeId \n     * @param udfId \n     */\n    public downloadPlaceCustomFieldFileWithHttpInfo(placeId: number, udfId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202105/place/${placeId}/udf/${udfId}/download'\n                    .replace('${' + 'placeId' + '}', String(placeId))\n                    .replace('${' + 'udfId' + '}', String(udfId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling downloadPlaceCustomFieldFile.');\n        }\n        // verify required parameter 'udfId' is not null or undefined\n        if (udfId === null || udfId === undefined) {\n            throw new Error('Required parameter udfId was null or undefined when calling downloadPlaceCustomFieldFile.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves benchmark values for a place\n     * \n     * @param benchmarkIndicator Indicator for the benchmark\n     * @param placeId Identifier for the place\n     */\n    public getBenchmarkValuesWithHttpInfo(benchmarkIndicator: number, placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BenchmarkValuesResponse>> {\n        const path = this.basePath + '/api/v3/placeBenchmark/${benchmarkIndicator}/place/${placeId}/benchmarkValue'\n                    .replace('${' + 'benchmarkIndicator' + '}', String(benchmarkIndicator))\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'benchmarkIndicator' is not null or undefined\n        if (benchmarkIndicator === null || benchmarkIndicator === undefined) {\n            throw new Error('Required parameter benchmarkIndicator was null or undefined when calling getBenchmarkValues.');\n        }\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getBenchmarkValues.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BenchmarkValuesResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get an energy project\n     * \n     * @param projectId The identifier for the energy project to retrieve\n     */\n    public getEnergyProjectWithHttpInfo(projectId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EnergyProjectResponse>> {\n        const path = this.basePath + '/api/v3/energyproject/${projectId}'\n                    .replace('${' + 'projectId' + '}', String(projectId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'projectId' is not null or undefined\n        if (projectId === null || projectId === undefined) {\n            throw new Error('Required parameter projectId was null or undefined when calling getEnergyProject.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EnergyProjectResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get custom field values for a energy project\n     * \n     * @param energyProjectId The id of the energy project\n     */\n    public getEnergyProjectCustomFieldsWithHttpInfo(energyProjectId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<UDFFieldChild>>> {\n        const path = this.basePath + '/api/v202501/energyproject/${energyProjectId}/udf'\n                    .replace('${' + 'energyProjectId' + '}', String(energyProjectId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'energyProjectId' is not null or undefined\n        if (energyProjectId === null || energyProjectId === undefined) {\n            throw new Error('Required parameter energyProjectId was null or undefined when calling getEnergyProjectCustomFields.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<UDFFieldChild>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get the energy project managers\n     * \n     * @param query \n     */\n    public getEnergyProjectManagerWithHttpInfo(query?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<ProjectManagerResponse>>> {\n        const path = this.basePath + '/api/v3/energyproject/projectmanager';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (query !== undefined) {\n            queryParameters = queryParameters.set('query', <any>query);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<ProjectManagerResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get all the energy project types\n     * \n     */\n    public getEnergyProjectTypesWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<EnergyProjectType>>> {\n        const path = this.basePath + '/api/v3/energyproject/energyprojecttype';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<EnergyProjectType>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all Energy Projects for a particular place by placeId. For organizations it will be the rollup of its children&#39;s energy projects\n     * \n     * @param placeId The place identifier for which energy projects are being retrieved\n     */\n    public getEnergyProjectsForPlaceWithHttpInfo(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<EnergyProjectResponse>>> {\n        const path = this.basePath + '/api/v3/place/${placeId}/project'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getEnergyProjectsForPlace.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<EnergyProjectResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a list of all commodities and, if configured, their mappings in ENERGY STAR\n     * \n     */\n    public getEnergyStarCommodityMappingsWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<EnergyStarCommodityMeterTypeMapping>>> {\n        const path = this.basePath + '/api/v202109/energyStar/commodity';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<EnergyStarCommodityMeterTypeMapping>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get the ENERGY STAR info for a place.\n     * \n     * @param placeId The place identifier\n     * @param verbose true by default.               When set to false the API will perform faster but will only retrieve PmPropertyId and PmPropertyName from Portfolio Manager.             PmPropertyUseType, PmFloorArea, PmFloorAreaUnits will be null.\n     */\n    public getEnergyStarPlaceWithHttpInfo(placeId: number, verbose?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EnergyStarPmProperty>> {\n        const path = this.basePath + '/api/v3/place/${placeId}/energyStar'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getEnergyStarPlace.');\n        }\n        if (verbose !== undefined) {\n            queryParameters = queryParameters.set('verbose', <any>verbose);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EnergyStarPmProperty>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get this place&#39;s ENERGY STAR child places\n     * \n     * @param placeId The place identifier\n     * @param filter \n     */\n    public getEnergyStarPlaceHierarchyWithHttpInfo(placeId: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<EnergyStarPlaceHierarchyResponse>>> {\n        const path = this.basePath + '/api/v3/place/${placeId}/energyStar/hierarchy'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getEnergyStarPlaceHierarchy.');\n        }\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<EnergyStarPlaceHierarchyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get the ENERGY STAR linking information for this place and its meters.  PmPropertyId and PmMeterId will be null if no link yet exists.\n     * \n     * @param placeId The place identifier\n     */\n    public getEnergyStarPlaceLinkWithHttpInfo(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EnergyStarPlaceLinkResponse>> {\n        const path = this.basePath + '/api/v3/place/${placeId}/energyStar/link'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getEnergyStarPlaceLink.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EnergyStarPlaceLinkResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get the ENERGY STAR metrics for a place.\n     * \n     * @param placeId The place identifier\n     * @param numberOfYears The number of years to go back from most recent score. Defaults to 2 years. If 0 is provided, will only include current score.\n     */\n    public getEnergyStarPlaceMetricsWithHttpInfo(placeId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EnergyStarPlaceHierarchyResponse>> {\n        const path = this.basePath + '/api/v3/place/${placeId}/energyStar/metrics'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getEnergyStarPlaceMetrics.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EnergyStarPlaceHierarchyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get settings for ENERGY STAR submissions\n     * \n     */\n    public getEnergyStarSettingsWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EnergyStarSettingsResponse>> {\n        const path = this.basePath + '/api/v202110/energyStar/setting';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EnergyStarSettingsResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves an ESA place by place ID\n     * \n     * @param placeId The identifier for the ESA place being retrieved\n     */\n    public getEsaPlaceWithHttpInfo(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EsaPlaceResponse>> {\n        const path = this.basePath + '/api/v202406/esaplace/${placeId}'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getEsaPlace.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EsaPlaceResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves the current sizes of all of an ESA place&#39;s children.  If a place has no children, nothing is returned.\n     * \n     * @param placeId \n     */\n    public getEsaPlaceChildrenSizesWithHttpInfo(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PlaceSizeResponse>>> {\n        const path = this.basePath + '/api/v202406/esaplace/${placeId}/placeSize/child'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getEsaPlaceChildrenSizes.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PlaceSizeResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Gets the schedules of a place\n     * \n     * @param placeId The place identifier\n     */\n    public getEsaPlaceSchedulesWithHttpInfo(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<ScheduleResponse>>> {\n        const path = this.basePath + '/api/v202407/esaplace/${placeId}/schedule'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getEsaPlaceSchedules.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<ScheduleResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves the entire size history of an ESA place by ID\n     * \n     * @param placeId \n     */\n    public getEsaPlaceSizeHistoryWithHttpInfo(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PlaceSizeChild>>> {\n        const path = this.basePath + '/api/v202406/esaplace/${placeId}/placeSize/history'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getEsaPlaceSizeHistory.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PlaceSizeChild>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all ESA places\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getEsaPlacesWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<EsaPlaceResponse>>> {\n        const path = this.basePath + '/api/v202406/esaplace';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<EsaPlaceResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves energy use intensity data for a place.  If data is requested for an organization, then all the places under the organization will be rolled up.\n     * \n     * @param placeId The place to retrieve data for\n     */\n    public getEuiChartDataWithHttpInfo(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PlaceDigestEnergyUseIntensity>>> {\n        const path = this.basePath + '/api/v3/place/${placeId}/digest/energyUseIntensity'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getEuiChartData.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PlaceDigestEnergyUseIntensity>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves one place\n     * \n     * @param placeId The identifier for the place being retrieved\n     */\n    public getPlaceWithHttpInfo(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<PlaceResponse>> {\n        const path = this.basePath + '/api/v3/place/${placeId}'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getPlace.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<PlaceResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by building/organization for a given number of years- Result includes cost, use, unit cost on a monthly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param placeId The place to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for actual and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     */\n    public getPlaceActualMonthlyWithHttpInfo(placeId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<PlaceDigestActualAndCalendarizedMonthlyResponse>> {\n        const path = this.basePath + '/api/v3/place/${placeId}/digest/actual/monthly'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getPlaceActualMonthly.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<PlaceDigestActualAndCalendarizedMonthlyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by building/organization for a given number of years- Result includes cost, use, unit cost on a monthly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for actual and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlaceActualMonthlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PlaceDigestActualAndCalendarizedMonthlyResponse>>> {\n        const path = this.basePath + '/api/v3/place/digest/actual/monthly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PlaceDigestActualAndCalendarizedMonthlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by building/organization for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param placeId The place to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     */\n    public getPlaceActualYearlyWithHttpInfo(placeId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<PlaceDigestActualAndCalendarizedYearlyResponse>> {\n        const path = this.basePath + '/api/v3/place/${placeId}/digest/actual/yearly'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getPlaceActualYearly.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<PlaceDigestActualAndCalendarizedYearlyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by building/organization for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlaceActualYearlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PlaceDigestActualAndCalendarizedYearlyResponse>>> {\n        const path = this.basePath + '/api/v3/place/digest/actual/yearly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PlaceDigestActualAndCalendarizedYearlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Return the total cost and cost for each commodity under a place for comparison Example calculating the current and previous ranges:  Today is 2022-10-06 chartMonthsToExclude &#x3D; 2, numMonths &#x3D; 6, comparisonYearsAgo &#x3D; 3 CurrentPeriodRange is 202203 - 202208 and PreviousPeriodRange is 201903 - 201908\n     * \n     * @param placeId Id of the place to lookup\n     * @param chartMonthsToExclude Optional, the number of months to exclude from intensity data, 0 includes all months including the current one. Defaults to the system setting otherwise 0.\n     * @param numMonths Optional, the number of months of intensity data to include, the end month is respective of chartMonthsToExclude. Defaults to 12.\n     * @param comparisonYearsAgo The comparisonYearsAgo is the number of years to go back to do the comparison. Defaults to 1.\n     */\n    public getPlaceCalendarizedCostComparisonWithHttpInfo(placeId: number, chartMonthsToExclude?: number, numMonths?: number, comparisonYearsAgo?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<PlaceDigestComparisonResponse>> {\n        const path = this.basePath + '/api/v202208/place/${placeId}/digest/calendarized/cost/comparison'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getPlaceCalendarizedCostComparison.');\n        }\n        if (chartMonthsToExclude !== undefined) {\n            queryParameters = queryParameters.set('chartMonthsToExclude', <any>chartMonthsToExclude);\n        }\n\n        if (numMonths !== undefined) {\n            queryParameters = queryParameters.set('numMonths', <any>numMonths);\n        }\n\n        if (comparisonYearsAgo !== undefined) {\n            queryParameters = queryParameters.set('comparisonYearsAgo', <any>comparisonYearsAgo);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<PlaceDigestComparisonResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Return the total ghg and ghg for each commodity under a place for comparison Example calculating the current and previous ranges:  Today is 2022-10-06 chartMonthsToExclude &#x3D; 2, numMonths &#x3D; 6, comparisonYearsAgo &#x3D; 3 CurrentPeriodRange is 202203 - 202208 and PreviousPeriodRange is 201903 - 201908\n     * \n     * @param placeId Id of the place to lookup\n     * @param chartMonthsToExclude Optional, the number of months to exclude from intensity data, 0 includes all months including the current one. Defaults to the system setting otherwise 0.\n     * @param numMonths Optional, the number of months of intensity data to include, the end month is respective of chartMonthsToExclude. Defaults to 12.\n     * @param comparisonYearsAgo The comparisonYearsAgo is the number of years to go back to do the comparison. Defaults to 1.\n     */\n    public getPlaceCalendarizedGhgComparisonWithHttpInfo(placeId: number, chartMonthsToExclude?: number, numMonths?: number, comparisonYearsAgo?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<PlaceDigestComparisonResponse>> {\n        const path = this.basePath + '/api/v202208/place/${placeId}/digest/calendarized/ghg/comparison'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getPlaceCalendarizedGhgComparison.');\n        }\n        if (chartMonthsToExclude !== undefined) {\n            queryParameters = queryParameters.set('chartMonthsToExclude', <any>chartMonthsToExclude);\n        }\n\n        if (numMonths !== undefined) {\n            queryParameters = queryParameters.set('numMonths', <any>numMonths);\n        }\n\n        if (comparisonYearsAgo !== undefined) {\n            queryParameters = queryParameters.set('comparisonYearsAgo', <any>comparisonYearsAgo);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<PlaceDigestComparisonResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up calendarized billing data by building/organization for a given number of years- Result includes cost, use, unit cost on a monthly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param placeId The place to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for calendarized and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     */\n    public getPlaceCalendarizedMonthlyWithHttpInfo(placeId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<PlaceDigestActualAndCalendarizedMonthlyResponse>> {\n        const path = this.basePath + '/api/v3/place/${placeId}/digest/calendarized/monthly'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getPlaceCalendarizedMonthly.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<PlaceDigestActualAndCalendarizedMonthlyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up calendarized billing data by building/organization for a given number of years- Result includes cost, use, unit cost on a monthly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for calendarized and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlaceCalendarizedMonthlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PlaceDigestActualAndCalendarizedMonthlyResponse>>> {\n        const path = this.basePath + '/api/v3/place/digest/calendarized/monthly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PlaceDigestActualAndCalendarizedMonthlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up calendarized billing data by building/organization for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param placeId The place to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     */\n    public getPlaceCalendarizedYearlyWithHttpInfo(placeId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<PlaceDigestActualAndCalendarizedYearlyResponse>> {\n        const path = this.basePath + '/api/v3/place/${placeId}/digest/calendarized/yearly'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getPlaceCalendarizedYearly.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<PlaceDigestActualAndCalendarizedYearlyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up calendarized billing data by building/organization for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlaceCalendarizedYearlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PlaceDigestActualAndCalendarizedYearlyResponse>>> {\n        const path = this.basePath + '/api/v3/place/digest/calendarized/yearly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PlaceDigestActualAndCalendarizedYearlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all Place Groups for a particular place by placeId\n     * \n     * @param placeId The place identifier for which group values are being retrieved\n     */\n    public getPlaceGroupsWithHttpInfo(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PlaceGroupResponse>>> {\n        const path = this.basePath + '/api/v3/place/${placeId}/group'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getPlaceGroups.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PlaceGroupResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up normalized billing data by building/organization for a given number of years- Result includes cost, use, unit cost on a monthly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param placeId The place to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for normalized and savings, and 24 or 26 (if 13 accounting periods) for normalized and normalized)\n     */\n    public getPlaceNomalizedMonthlyWithHttpInfo(placeId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<PlaceDigestNormalizedMonthlyResponse>> {\n        const path = this.basePath + '/api/v3/place/${placeId}/digest/normalized/monthly'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getPlaceNomalizedMonthly.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<PlaceDigestNormalizedMonthlyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up normalized billing data by building/organization for a given number of years- Result includes use on a monthly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for normalized and savings, and 24 or 26 (if 13 accounting periods) for normalized and normalized)\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlaceNomalizedMonthlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PlaceDigestNormalizedMonthlyResponse>>> {\n        const path = this.basePath + '/api/v3/place/digest/normalized/monthly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PlaceDigestNormalizedMonthlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Return the total use and use for each commodity under a place for comparison Example calculating the current and previous ranges:  Today is 2022-10-06 chartMonthsToExclude &#x3D; 2, numMonths &#x3D; 6, comparisonYearsAgo &#x3D; 3 CurrentPeriodRange is 202203 - 202208 and PreviousPeriodRange is 201903 - 201908\n     * \n     * @param placeId Id of the place to lookup\n     * @param chartMonthsToExclude Optional, the number of months to exclude from intensity data, 0 includes all months including the current one. Defaults to the system setting otherwise 0.\n     * @param numMonths Optional, the number of months of intensity data to include, the end month is respective of chartMonthsToExclude. Defaults to 12.\n     * @param comparisonYearsAgo The comparisonYearsAgo is the number of years to go back to do the comparison. Defaults to 1.\n     */\n    public getPlaceNormalizedUseComparisonWithHttpInfo(placeId: number, chartMonthsToExclude?: number, numMonths?: number, comparisonYearsAgo?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<PlaceDigestComparisonResponse>> {\n        const path = this.basePath + '/api/v202208/place/${placeId}/digest/normalized/use/comparison'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getPlaceNormalizedUseComparison.');\n        }\n        if (chartMonthsToExclude !== undefined) {\n            queryParameters = queryParameters.set('chartMonthsToExclude', <any>chartMonthsToExclude);\n        }\n\n        if (numMonths !== undefined) {\n            queryParameters = queryParameters.set('numMonths', <any>numMonths);\n        }\n\n        if (comparisonYearsAgo !== undefined) {\n            queryParameters = queryParameters.set('comparisonYearsAgo', <any>comparisonYearsAgo);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<PlaceDigestComparisonResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up normalized billing data by building/organization for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param placeId The place to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     */\n    public getPlaceNormalizedYearlyWithHttpInfo(placeId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<PlaceDigestNormalizedYearlyResponse>> {\n        const path = this.basePath + '/api/v3/place/${placeId}/digest/normalized/yearly'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getPlaceNormalizedYearly.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<PlaceDigestNormalizedYearlyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up normalized billing data by building/organization for a given number of years- Result include use on an yearly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlaceNormalizedYearlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PlaceDigestNormalizedYearlyResponse>>> {\n        const path = this.basePath + '/api/v3/place/digest/normalized/yearly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PlaceDigestNormalizedYearlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up savings data by building/organization for a given number of years- Result includes cost, use, unit cost on a monthly basis. It also includes target comparison data and commodity level break up.\n     * \n     * @param placeId The place to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for actual and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     */\n    public getPlaceSavingsMonthlyWithHttpInfo(placeId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<PlaceDigestSavingsMonthlyResponse>> {\n        const path = this.basePath + '/api/v3/place/${placeId}/digest/savings/monthly'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getPlaceSavingsMonthly.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<PlaceDigestSavingsMonthlyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up savings data by building/organization for a given number of years- Result includes cost and use savings on a monthly basis.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years/24 months\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlaceSavingsMonthlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PlaceDigestSavingsMonthlyResponse>>> {\n        const path = this.basePath + '/api/v3/place/digest/savings/monthly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PlaceDigestSavingsMonthlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * \n     * \n     * @param placeId \n     * @param numberOfYears \n     */\n    public getPlaceSavingsYearlyWithHttpInfo(placeId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<PlaceDigestSavingsYearlyResponse>> {\n        const path = this.basePath + '/api/v3/place/${placeId}/digest/savings/yearly'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getPlaceSavingsYearly.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<PlaceDigestSavingsYearlyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up savings billing data by building/organization for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes a commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlaceSavingsYearlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PlaceDigestSavingsYearlyResponse>>> {\n        const path = this.basePath + '/api/v3/place/digest/savings/yearly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PlaceDigestSavingsYearlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves a place size record for a particular place\n     * \n     * @param placeId The identifier for the place being retrieved\n     * @param placeSizeId The identifier for the place size being retrieved\n     */\n    public getPlaceSizeWithHttpInfo(placeId: number, placeSizeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<PlaceSizeChild>> {\n        const path = this.basePath + '/api/v3/place/${placeId}/size/${placeSizeId}'\n                    .replace('${' + 'placeId' + '}', String(placeId))\n                    .replace('${' + 'placeSizeId' + '}', String(placeSizeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getPlaceSize.');\n        }\n        // verify required parameter 'placeSizeId' is not null or undefined\n        if (placeSizeId === null || placeSizeId === undefined) {\n            throw new Error('Required parameter placeSizeId was null or undefined when calling getPlaceSize.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<PlaceSizeChild>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all place size records for a particular place\n     * \n     * @param placeId The identifier for the place being retrieved\n     */\n    public getPlaceSizesWithHttpInfo(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PlaceSizeChild>>> {\n        const path = this.basePath + '/api/v3/place/${placeId}/size'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getPlaceSizes.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PlaceSizeChild>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all user defined fields / custom fields for a particular place\n     * \n     * @param placeId The place identifier for which user defined field / custom field values are being retrieved\n     */\n    public getPlaceUdfsWithHttpInfo(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<UDFFieldChild>>> {\n        const path = this.basePath + '/api/v3/place/${placeId}/udf'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getPlaceUdfs.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<UDFFieldChild>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all places\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlacesWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PlaceResponse>>> {\n        const path = this.basePath + '/api/v3/place';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PlaceResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all user defined fields / custom fields for all places\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getPlacesUdfsWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PlaceUDFResponse>>> {\n        const path = this.basePath + '/api/v3/place/udf';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PlaceUDFResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get list of Portfolio Manager properties\n     * \n     * @param includeOnlyUnlinked Include only unlinked properties\n     * @param verbose true by default.               When set to false the API will perform faster but will only retrieve PmPropertyId and PmPropertyName from Portfolio Manager.             PmPropertyUseType, PmFloorArea, PmFloorAreaUnits will be null.\n     */\n    public getPortfolioManagerPropertiesWithHttpInfo(includeOnlyUnlinked?: boolean, verbose?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<EnergyStarPmProperty>>> {\n        const path = this.basePath + '/api/v3/energyStar/pmProperty';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (includeOnlyUnlinked !== undefined) {\n            queryParameters = queryParameters.set('includeOnlyUnlinked', <any>includeOnlyUnlinked);\n        }\n\n        if (verbose !== undefined) {\n            queryParameters = queryParameters.set('verbose', <any>verbose);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<EnergyStarPmProperty>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a Portfolio Manager property\n     * \n     * @param pmPropertyId Portfolio Manager property identifier\n     * @param verbose true by default.               When set to false the API will perform faster but will only retrieve PmPropertyId and PmPropertyName from Portfolio Manager.             PmPropertyUseType, PmFloorArea, PmFloorAreaUnits will be null.\n     */\n    public getPortfolioManagerPropertyWithHttpInfo(pmPropertyId: number, verbose?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EnergyStarPmProperty>> {\n        const path = this.basePath + '/api/v3/energyStar/pmProperty/${pmPropertyId}'\n                    .replace('${' + 'pmPropertyId' + '}', String(pmPropertyId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'pmPropertyId' is not null or undefined\n        if (pmPropertyId === null || pmPropertyId === undefined) {\n            throw new Error('Required parameter pmPropertyId was null or undefined when calling getPortfolioManagerProperty.');\n        }\n        if (verbose !== undefined) {\n            queryParameters = queryParameters.set('verbose', <any>verbose);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EnergyStarPmProperty>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get list of Portfolio Manager meters for a property\n     * \n     * @param pmPropertyId Portfolio Manager property identifier\n     * @param includeOnlyUnlinked Include only unlinked meters\n     * @param verbose true by default.               When set to false the API will perform faster but will only retrieve PmMeterId and PmMeterName from Portfolio Manager.             PmCommodityCode and PmUnitCode will be null.\n     */\n    public getPortfolioManagerPropertyMetersWithHttpInfo(pmPropertyId: number, includeOnlyUnlinked?: boolean, verbose?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<EnergyStarPmMeter>>> {\n        const path = this.basePath + '/api/v3/energyStar/pmProperty/${pmPropertyId}/pmMeter'\n                    .replace('${' + 'pmPropertyId' + '}', String(pmPropertyId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'pmPropertyId' is not null or undefined\n        if (pmPropertyId === null || pmPropertyId === undefined) {\n            throw new Error('Required parameter pmPropertyId was null or undefined when calling getPortfolioManagerPropertyMeters.');\n        }\n        if (includeOnlyUnlinked !== undefined) {\n            queryParameters = queryParameters.set('includeOnlyUnlinked', <any>includeOnlyUnlinked);\n        }\n\n        if (verbose !== undefined) {\n            queryParameters = queryParameters.set('verbose', <any>verbose);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<EnergyStarPmMeter>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves the specified schedule\n     * \n     * @param scheduleId The schedule identifier\n     */\n    public getScheduleWithHttpInfo(scheduleId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ScheduleResponse>> {\n        const path = this.basePath + '/api/v202406/schedule/${scheduleId}'\n                    .replace('${' + 'scheduleId' + '}', String(scheduleId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'scheduleId' is not null or undefined\n        if (scheduleId === null || scheduleId === undefined) {\n            throw new Error('Required parameter scheduleId was null or undefined when calling getSchedule.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ScheduleResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all schedules\n     * \n     */\n    public getSchedulesWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<ScheduleResponse>>> {\n        const path = this.basePath + '/api/v202406/schedule';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<ScheduleResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Returns the data point ancestry information, useful for populating a tree of spaces\n     * \n     * @param dataPointId Data point Id\n     */\n    public hierarchicalAncestryDataPointsWithHttpInfo(dataPointId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<HierarchicalSpaces>> {\n        const path = this.basePath + '/api/v202405/hierarchy/ancestry/datapoint/${dataPointId}'\n                    .replace('${' + 'dataPointId' + '}', String(dataPointId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'dataPointId' is not null or undefined\n        if (dataPointId === null || dataPointId === undefined) {\n            throw new Error('Required parameter dataPointId was null or undefined when calling hierarchicalAncestryDataPoints.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<HierarchicalSpaces>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Returns meter ancestry information, useful for populating a tree of places\n     * \n     * @param meterId Meter ID\n     */\n    public hierarchicalAncestryMetersWithHttpInfo(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<HierarchicalPlaces>> {\n        const path = this.basePath + '/api/v3/hierarchy/ancestry/meter/${meterId}'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling hierarchicalAncestryMeters.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<HierarchicalPlaces>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Returns place ancestry information, useful for populating a tree of places\n     * \n     * @param placeId Place ID\n     */\n    public hierarchicalAncestryPlacesWithHttpInfo(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<HierarchicalPlaces>> {\n        const path = this.basePath + '/api/v3/hierarchy/ancestry/place/${placeId}'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling hierarchicalAncestryPlaces.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<HierarchicalPlaces>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Returns the space ancestry information, useful for populating a tree of spaces\n     * \n     * @param placeId Place Id\n     */\n    public hierarchicalAncestrySpacesWithHttpInfo(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<HierarchicalSpaces>> {\n        const path = this.basePath + '/api/v202405/hierarchy/ancestry/space/${placeId}'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling hierarchicalAncestrySpaces.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<HierarchicalSpaces>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Returns place descendant information, useful for expanding a place node\n     * \n     * @param placeId Place ID\n     */\n    public hierarchicalPlaceWithHttpInfo(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<HierarchicalPlaces>> {\n        const path = this.basePath + '/api/v3/hierarchy/place/${placeId}'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling hierarchicalPlace.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<HierarchicalPlaces>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Returns the space descendant information, useful for expanding a space node\n     * \n     * @param placeId Place Id\n     */\n    public hierarchicalSpaceWithHttpInfo(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<HierarchicalSpaces>> {\n        const path = this.basePath + '/api/v202405/hierarchy/space/${placeId}'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling hierarchicalSpace.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<HierarchicalSpaces>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsChargebackReversalsManagespanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Delete all bills created by the chargeback task If this is a split task, any source bills will be reset to has not been split If any bills have already been exported they will still be deleted\n     * \n     * @param taskId Identifier for the chargeback task\n     */\n    public deleteChargebackTask(taskId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteChargebackTaskWithHttpInfo(taskId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete all bills created by a chargeback workflow step If this workflow step was run multiple times, all bills created across all runs for the billing period will be voided If this is a split step, any source bills will be reset to has not been split If any bills have already been exported they will still be deleted\n     * \n     * @param chargebackWorkflowStepId Chargeback Workflow Step ID\n     * @param billingPeriod Billing period to undo\n     */\n    public deleteChargebackWorkflowSteps(chargebackWorkflowStepId: number, billingPeriod?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteChargebackWorkflowStepsWithHttpInfo(chargebackWorkflowStepId, billingPeriod, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Void all bills created by the chargeback task If this is a split task, any source bills will be reset to has not been split If any bills have already been exported they will still be voided\n     * \n     * @param taskId Identifier for the chargeback task\n     */\n    public voidChargebackTask(taskId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.voidChargebackTaskWithHttpInfo(taskId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Void all bills created by a chargeback workflow step for a particular billing period If this workflow step was run multiple times, all bills created across all runs for the billing period will be voided If this is a split step, any source bills will be reset to has not been split If any bills have already been exported they will still be voided\n     * \n     * @param chargebackWorkflowStepId Chargeback Workflow Step ID\n     * @param billingPeriod Billing period to undo\n     */\n    public voidChargebackWorkflowSteps(chargebackWorkflowStepId: number, billingPeriod?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.voidChargebackWorkflowStepsWithHttpInfo(chargebackWorkflowStepId, billingPeriod, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Delete all bills created by the chargeback task If this is a split task, any source bills will be reset to has not been split If any bills have already been exported they will still be deleted\n     * \n     * @param taskId Identifier for the chargeback task\n     */\n    public deleteChargebackTaskWithHttpInfo(taskId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/chargebackTask/${taskId}/delete'\n                    .replace('${' + 'taskId' + '}', String(taskId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'taskId' is not null or undefined\n        if (taskId === null || taskId === undefined) {\n            throw new Error('Required parameter taskId was null or undefined when calling deleteChargebackTask.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Delete all bills created by a chargeback workflow step If this workflow step was run multiple times, all bills created across all runs for the billing period will be voided If this is a split step, any source bills will be reset to has not been split If any bills have already been exported they will still be deleted\n     * \n     * @param chargebackWorkflowStepId Chargeback Workflow Step ID\n     * @param billingPeriod Billing period to undo\n     */\n    public deleteChargebackWorkflowStepsWithHttpInfo(chargebackWorkflowStepId: number, billingPeriod?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/chargebackWorkflowStep/${chargebackWorkflowStepId}/delete'\n                    .replace('${' + 'chargebackWorkflowStepId' + '}', String(chargebackWorkflowStepId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'chargebackWorkflowStepId' is not null or undefined\n        if (chargebackWorkflowStepId === null || chargebackWorkflowStepId === undefined) {\n            throw new Error('Required parameter chargebackWorkflowStepId was null or undefined when calling deleteChargebackWorkflowSteps.');\n        }\n        if (billingPeriod !== undefined) {\n            queryParameters = queryParameters.set('billingPeriod', <any>billingPeriod);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Void all bills created by the chargeback task If this is a split task, any source bills will be reset to has not been split If any bills have already been exported they will still be voided\n     * \n     * @param taskId Identifier for the chargeback task\n     */\n    public voidChargebackTaskWithHttpInfo(taskId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/chargebackTask/${taskId}/void'\n                    .replace('${' + 'taskId' + '}', String(taskId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'taskId' is not null or undefined\n        if (taskId === null || taskId === undefined) {\n            throw new Error('Required parameter taskId was null or undefined when calling voidChargebackTask.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Void all bills created by a chargeback workflow step for a particular billing period If this workflow step was run multiple times, all bills created across all runs for the billing period will be voided If this is a split step, any source bills will be reset to has not been split If any bills have already been exported they will still be voided\n     * \n     * @param chargebackWorkflowStepId Chargeback Workflow Step ID\n     * @param billingPeriod Billing period to undo\n     */\n    public voidChargebackWorkflowStepsWithHttpInfo(chargebackWorkflowStepId: number, billingPeriod?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/chargebackWorkflowStep/${chargebackWorkflowStepId}/void'\n                    .replace('${' + 'chargebackWorkflowStepId' + '}', String(chargebackWorkflowStepId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'chargebackWorkflowStepId' is not null or undefined\n        if (chargebackWorkflowStepId === null || chargebackWorkflowStepId === undefined) {\n            throw new Error('Required parameter chargebackWorkflowStepId was null or undefined when calling voidChargebackWorkflowSteps.');\n        }\n        if (billingPeriod !== undefined) {\n            queryParameters = queryParameters.set('billingPeriod', <any>billingPeriod);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Post, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { AssignVersionsToStep } from '../model/assignVersionsToStep';\nimport { BillSplitDetailsRequest } from '../model/billSplitDetailsRequest';\nimport { BillSplitDetailsResponse } from '../model/billSplitDetailsResponse';\nimport { CalculatedBillCostRequest } from '../model/calculatedBillCostRequest';\nimport { CalculatedBillCostResponse } from '../model/calculatedBillCostResponse';\nimport { CalculatedBillDemandRequest } from '../model/calculatedBillDemandRequest';\nimport { CalculatedBillDemandResponse } from '../model/calculatedBillDemandResponse';\nimport { CalculatedBillUseRequest } from '../model/calculatedBillUseRequest';\nimport { CalculatedBillUseResponse } from '../model/calculatedBillUseResponse';\nimport { ChargebackWorkflowCreate } from '../model/chargebackWorkflowCreate';\nimport { ChargebackWorkflowEdit } from '../model/chargebackWorkflowEdit';\nimport { ChargebackWorkflowResponse } from '../model/chargebackWorkflowResponse';\nimport { ChargebackWorkflowStepChild } from '../model/chargebackWorkflowStepChild';\nimport { DistributionVersionManage } from '../model/distributionVersionManage';\nimport { DistributionVersionResponse } from '../model/distributionVersionResponse';\nimport { GenericBodylineRequest } from '../model/genericBodylineRequest';\nimport { GenericBodylineResponse } from '../model/genericBodylineResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsChargebacksManagespanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Assign a list of bill split or calculate bill versions to a chargeback workflow step of the same type\n     * \n     * @param chargebackWorkflowStepId ID of the chargeback workflow step to which the versions will be assigned\n     * @param billingPeriod The billing period to validate that the provided versions are effective\n     * @param body The chargeback versions to assign to the provided chargeback workflow step\n     */\n    public assignVersionsToStep(chargebackWorkflowStepId: number, billingPeriod: number, body?: AssignVersionsToStep, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ChargebackWorkflowStepChild> {\n        return this.assignVersionsToStepWithHttpInfo(chargebackWorkflowStepId, billingPeriod, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ChargebackWorkflowStepChild>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Create a chargeback workflow\n     * \n     * @param body Definition for chargeback workflow\n     */\n    public createChargebackWorkflow(body?: ChargebackWorkflowCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ChargebackWorkflowResponse> {\n        return this.createChargebackWorkflowWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ChargebackWorkflowResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete a chargeback workflow\n     * \n     * @param chargebackWorkflowId Chargeback workflow id\n     */\n    public deleteChargebackWorkflow(chargebackWorkflowId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteChargebackWorkflowWithHttpInfo(chargebackWorkflowId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit a chargeback workflow\n     * \n     * @param chargebackWorkflowId Chargeback workflow id\n     * @param body Definition for chargeback workflow\n     */\n    public editChargebackWorkflow(chargebackWorkflowId: number, body?: ChargebackWorkflowEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ChargebackWorkflowResponse> {\n        return this.editChargebackWorkflowWithHttpInfo(chargebackWorkflowId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ChargebackWorkflowResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Manage calculated bill account line items The order of items in the list defines the calculation order All line items to save should be passed If a line currently exists and is not passed in it will be deleted If any part of the create, update, or delete process fails, the entire process is rolled back\n     * \n     * @param accountId ID of the account to receive calculated bill details\n     * @param meterId ID of the meter to receive calculated bill details\n     * @param versionId ID of the calculated bill distribution version\n     * @param body Definition of the account line items.\n     */\n    public manageAccountLineItems(accountId: number, meterId: number, versionId: number, body?: Array<GenericBodylineRequest>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<GenericBodylineResponse>> {\n        return this.manageAccountLineItemsWithHttpInfo(accountId, meterId, versionId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<GenericBodylineResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Manage details for a bill split distribution\n     * \n     * @param accountId ID of the master account\n     * @param meterId ID of the master meter\n     * @param versionId ID of the version to update bill split details\n     * @param body Definition of details for bill split\n     */\n    public manageBillSplitDetails(accountId: number, meterId: number, versionId: number, body?: BillSplitDetailsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BillSplitDetailsResponse> {\n        return this.manageBillSplitDetailsWithHttpInfo(accountId, meterId, versionId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BillSplitDetailsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Manage a bill split&#39;s version history All bill split versions to save on this account and meter relationship should be passed If versionId is passed, this version will be updated to the request body values If copyVersionId is passed, a new version will be created and all instructions and inputs on the copyVersionId will be copied If versionId and copyVersionId are null a new version will be created Versions cannot overlap If a bill split version currently exists in the database, but is not passed in it will be deleted Only versions that are not currently associated with any bills can be deleted If any part of the create, update, or delete process fails, the entire process is rolled back\n     * \n     * @param accountId ID of the account whose bill split versions will be updated\n     * @param meterId ID of the meter whose bill split versions will be updated\n     * @param body List of bill split distribution versions to add or edit\n     */\n    public manageBillSplitVersionHistory(accountId: number, meterId: number, body?: Array<DistributionVersionManage>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<DistributionVersionResponse>> {\n        return this.manageBillSplitVersionHistoryWithHttpInfo(accountId, meterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<DistributionVersionResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Manage calculated bill&#39;s cost If cost does not exist on the distribution it will be added If one exists it will be saved as the option sent in Since cost is required for the calculated bill distribution to work.  One option is always required and cannot be deleted\n     * \n     * @param accountId ID of the account to receive calculated bill details\n     * @param meterId ID of the meter to receive calculated bill details\n     * @param versionId ID of the calculated bill distribution version\n     * @param body Definition of how the meter will calculate its cost\n     */\n    public manageCalculateBillCost(accountId: number, meterId: number, versionId: number, body?: CalculatedBillCostRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CalculatedBillCostResponse> {\n        return this.manageCalculateBillCostWithHttpInfo(accountId, meterId, versionId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CalculatedBillCostResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Manage calculated bill&#39;s demand If demand does not exist on the distribution it will be added If one exists it will be saved as the option sent in If the dto sends null for both (channel and fixed), then demand will get cleared\n     * \n     * @param accountId ID of the account to receive calculated bill details\n     * @param meterId ID of the meter to receive calculated bill details\n     * @param versionId ID of the calculated bill distribution version\n     * @param body Definition of how the meter will calculate its demand\n     */\n    public manageCalculateBillDemand(accountId: number, meterId: number, versionId: number, body?: CalculatedBillDemandRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CalculatedBillDemandResponse> {\n        return this.manageCalculateBillDemandWithHttpInfo(accountId, meterId, versionId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CalculatedBillDemandResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Manage calculated bill&#39;s use * If use does not exist on the distribution it will be added * If use already exists it will be saved as the option sent in and any existing inputs will be deleted * Since use is required for the calculated bill distribution to work, one option is always required and cannot be deleted\n     * \n     * @param accountId ID of the account to receive calculated bill details\n     * @param meterId ID of the meter to receive calculated bill details\n     * @param versionId ID of the calculated bill distribution version\n     * @param body Definition of how the meter will calculate its use\n     */\n    public manageCalculateBillUse(accountId: number, meterId: number, versionId: number, body?: CalculatedBillUseRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CalculatedBillUseResponse> {\n        return this.manageCalculateBillUseWithHttpInfo(accountId, meterId, versionId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CalculatedBillUseResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Manage a calculated bill&#39;s version history All calculated bill versions to save on this account and meter relationship should be passed If versionId is passed, this version will be updated to the request body values If copyVersionId is passed, a new version will be created and all instructions and inputs on the copyVersionId will be copied If versionId and copyVersionId are null a new version will be created Versions cannot overlap If a calculated bill version currently exists in the database, but is not passed in it will be deleted Only versions that are not currently associated with any bills can be deleted If any part of the create, update, or delete process fails, the entire process is rolled back\n     * \n     * @param accountId ID of the account to receive calculated bill details\n     * @param meterId ID of the meter to receive calculated bill details\n     * @param body List of calculated bill distribution versions to add or edit\n     */\n    public manageCalculatedBillVersionHistory(accountId: number, meterId: number, body?: Array<DistributionVersionManage>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<DistributionVersionResponse>> {\n        return this.manageCalculatedBillVersionHistoryWithHttpInfo(accountId, meterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<DistributionVersionResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Manage calculated bill meter line items The order of items in the list defines the calculation order All line items to save should be passed If a line currently exists and is not passed in it will be deleted If any part of the create, update, or delete process fails, the entire process is rolled back\n     * \n     * @param accountId ID of the account to receive calculated bill details\n     * @param meterId ID of the meter to receive calculated bill details\n     * @param versionId ID of the calculated bill distribution version\n     * @param body Definition of the meter line items\n     */\n    public manageMeterLineItems(accountId: number, meterId: number, versionId: number, body?: Array<GenericBodylineRequest>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<GenericBodylineResponse>> {\n        return this.manageMeterLineItemsWithHttpInfo(accountId, meterId, versionId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<GenericBodylineResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Assign a list of bill split or calculate bill versions to a chargeback workflow step of the same type\n     * \n     * @param chargebackWorkflowStepId ID of the chargeback workflow step to which the versions will be assigned\n     * @param billingPeriod The billing period to validate that the provided versions are effective\n     * @param body The chargeback versions to assign to the provided chargeback workflow step\n     */\n    public assignVersionsToStepWithHttpInfo(chargebackWorkflowStepId: number, billingPeriod: number, body?: AssignVersionsToStep, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ChargebackWorkflowStepChild>> {\n        const path = this.basePath + '/api/v3/chargebackWorkflowStep/${chargebackWorkflowStepId}/billingPeriod/${billingPeriod}/version'\n                    .replace('${' + 'chargebackWorkflowStepId' + '}', String(chargebackWorkflowStepId))\n                    .replace('${' + 'billingPeriod' + '}', String(billingPeriod));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'chargebackWorkflowStepId' is not null or undefined\n        if (chargebackWorkflowStepId === null || chargebackWorkflowStepId === undefined) {\n            throw new Error('Required parameter chargebackWorkflowStepId was null or undefined when calling assignVersionsToStep.');\n        }\n        // verify required parameter 'billingPeriod' is not null or undefined\n        if (billingPeriod === null || billingPeriod === undefined) {\n            throw new Error('Required parameter billingPeriod was null or undefined when calling assignVersionsToStep.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ChargebackWorkflowStepChild>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Create a chargeback workflow\n     * \n     * @param body Definition for chargeback workflow\n     */\n    public createChargebackWorkflowWithHttpInfo(body?: ChargebackWorkflowCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ChargebackWorkflowResponse>> {\n        const path = this.basePath + '/api/v3/chargebackWorkflow';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ChargebackWorkflowResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Delete a chargeback workflow\n     * \n     * @param chargebackWorkflowId Chargeback workflow id\n     */\n    public deleteChargebackWorkflowWithHttpInfo(chargebackWorkflowId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/chargebackWorkflow/${chargebackWorkflowId}'\n                    .replace('${' + 'chargebackWorkflowId' + '}', String(chargebackWorkflowId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'chargebackWorkflowId' is not null or undefined\n        if (chargebackWorkflowId === null || chargebackWorkflowId === undefined) {\n            throw new Error('Required parameter chargebackWorkflowId was null or undefined when calling deleteChargebackWorkflow.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Edit a chargeback workflow\n     * \n     * @param chargebackWorkflowId Chargeback workflow id\n     * @param body Definition for chargeback workflow\n     */\n    public editChargebackWorkflowWithHttpInfo(chargebackWorkflowId: number, body?: ChargebackWorkflowEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ChargebackWorkflowResponse>> {\n        const path = this.basePath + '/api/v3/chargebackWorkflow/${chargebackWorkflowId}'\n                    .replace('${' + 'chargebackWorkflowId' + '}', String(chargebackWorkflowId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'chargebackWorkflowId' is not null or undefined\n        if (chargebackWorkflowId === null || chargebackWorkflowId === undefined) {\n            throw new Error('Required parameter chargebackWorkflowId was null or undefined when calling editChargebackWorkflow.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ChargebackWorkflowResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Manage calculated bill account line items The order of items in the list defines the calculation order All line items to save should be passed If a line currently exists and is not passed in it will be deleted If any part of the create, update, or delete process fails, the entire process is rolled back\n     * \n     * @param accountId ID of the account to receive calculated bill details\n     * @param meterId ID of the meter to receive calculated bill details\n     * @param versionId ID of the calculated bill distribution version\n     * @param body Definition of the account line items.\n     */\n    public manageAccountLineItemsWithHttpInfo(accountId: number, meterId: number, versionId: number, body?: Array<GenericBodylineRequest>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<GenericBodylineResponse>>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/meter/${meterId}/calculatedBill/${versionId}/accountLineItem'\n                    .replace('${' + 'accountId' + '}', String(accountId))\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling manageAccountLineItems.');\n        }\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling manageAccountLineItems.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling manageAccountLineItems.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<GenericBodylineResponse>>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Manage details for a bill split distribution\n     * \n     * @param accountId ID of the master account\n     * @param meterId ID of the master meter\n     * @param versionId ID of the version to update bill split details\n     * @param body Definition of details for bill split\n     */\n    public manageBillSplitDetailsWithHttpInfo(accountId: number, meterId: number, versionId: number, body?: BillSplitDetailsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BillSplitDetailsResponse>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/meter/${meterId}/billSplit/${versionId}'\n                    .replace('${' + 'accountId' + '}', String(accountId))\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling manageBillSplitDetails.');\n        }\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling manageBillSplitDetails.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling manageBillSplitDetails.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BillSplitDetailsResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Manage a bill split&#39;s version history All bill split versions to save on this account and meter relationship should be passed If versionId is passed, this version will be updated to the request body values If copyVersionId is passed, a new version will be created and all instructions and inputs on the copyVersionId will be copied If versionId and copyVersionId are null a new version will be created Versions cannot overlap If a bill split version currently exists in the database, but is not passed in it will be deleted Only versions that are not currently associated with any bills can be deleted If any part of the create, update, or delete process fails, the entire process is rolled back\n     * \n     * @param accountId ID of the account whose bill split versions will be updated\n     * @param meterId ID of the meter whose bill split versions will be updated\n     * @param body List of bill split distribution versions to add or edit\n     */\n    public manageBillSplitVersionHistoryWithHttpInfo(accountId: number, meterId: number, body?: Array<DistributionVersionManage>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<DistributionVersionResponse>>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/meter/${meterId}/billSplit'\n                    .replace('${' + 'accountId' + '}', String(accountId))\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling manageBillSplitVersionHistory.');\n        }\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling manageBillSplitVersionHistory.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<DistributionVersionResponse>>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Manage calculated bill&#39;s cost If cost does not exist on the distribution it will be added If one exists it will be saved as the option sent in Since cost is required for the calculated bill distribution to work.  One option is always required and cannot be deleted\n     * \n     * @param accountId ID of the account to receive calculated bill details\n     * @param meterId ID of the meter to receive calculated bill details\n     * @param versionId ID of the calculated bill distribution version\n     * @param body Definition of how the meter will calculate its cost\n     */\n    public manageCalculateBillCostWithHttpInfo(accountId: number, meterId: number, versionId: number, body?: CalculatedBillCostRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CalculatedBillCostResponse>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/meter/${meterId}/calculatedBill/${versionId}/cost'\n                    .replace('${' + 'accountId' + '}', String(accountId))\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling manageCalculateBillCost.');\n        }\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling manageCalculateBillCost.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling manageCalculateBillCost.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CalculatedBillCostResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Manage calculated bill&#39;s demand If demand does not exist on the distribution it will be added If one exists it will be saved as the option sent in If the dto sends null for both (channel and fixed), then demand will get cleared\n     * \n     * @param accountId ID of the account to receive calculated bill details\n     * @param meterId ID of the meter to receive calculated bill details\n     * @param versionId ID of the calculated bill distribution version\n     * @param body Definition of how the meter will calculate its demand\n     */\n    public manageCalculateBillDemandWithHttpInfo(accountId: number, meterId: number, versionId: number, body?: CalculatedBillDemandRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CalculatedBillDemandResponse>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/meter/${meterId}/calculatedBill/${versionId}/demand'\n                    .replace('${' + 'accountId' + '}', String(accountId))\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling manageCalculateBillDemand.');\n        }\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling manageCalculateBillDemand.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling manageCalculateBillDemand.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CalculatedBillDemandResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Manage calculated bill&#39;s use * If use does not exist on the distribution it will be added * If use already exists it will be saved as the option sent in and any existing inputs will be deleted * Since use is required for the calculated bill distribution to work, one option is always required and cannot be deleted\n     * \n     * @param accountId ID of the account to receive calculated bill details\n     * @param meterId ID of the meter to receive calculated bill details\n     * @param versionId ID of the calculated bill distribution version\n     * @param body Definition of how the meter will calculate its use\n     */\n    public manageCalculateBillUseWithHttpInfo(accountId: number, meterId: number, versionId: number, body?: CalculatedBillUseRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CalculatedBillUseResponse>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/meter/${meterId}/calculatedBill/${versionId}/use'\n                    .replace('${' + 'accountId' + '}', String(accountId))\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling manageCalculateBillUse.');\n        }\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling manageCalculateBillUse.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling manageCalculateBillUse.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CalculatedBillUseResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Manage a calculated bill&#39;s version history All calculated bill versions to save on this account and meter relationship should be passed If versionId is passed, this version will be updated to the request body values If copyVersionId is passed, a new version will be created and all instructions and inputs on the copyVersionId will be copied If versionId and copyVersionId are null a new version will be created Versions cannot overlap If a calculated bill version currently exists in the database, but is not passed in it will be deleted Only versions that are not currently associated with any bills can be deleted If any part of the create, update, or delete process fails, the entire process is rolled back\n     * \n     * @param accountId ID of the account to receive calculated bill details\n     * @param meterId ID of the meter to receive calculated bill details\n     * @param body List of calculated bill distribution versions to add or edit\n     */\n    public manageCalculatedBillVersionHistoryWithHttpInfo(accountId: number, meterId: number, body?: Array<DistributionVersionManage>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<DistributionVersionResponse>>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/meter/${meterId}/calculatedBill'\n                    .replace('${' + 'accountId' + '}', String(accountId))\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling manageCalculatedBillVersionHistory.');\n        }\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling manageCalculatedBillVersionHistory.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<DistributionVersionResponse>>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Manage calculated bill meter line items The order of items in the list defines the calculation order All line items to save should be passed If a line currently exists and is not passed in it will be deleted If any part of the create, update, or delete process fails, the entire process is rolled back\n     * \n     * @param accountId ID of the account to receive calculated bill details\n     * @param meterId ID of the meter to receive calculated bill details\n     * @param versionId ID of the calculated bill distribution version\n     * @param body Definition of the meter line items\n     */\n    public manageMeterLineItemsWithHttpInfo(accountId: number, meterId: number, versionId: number, body?: Array<GenericBodylineRequest>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<GenericBodylineResponse>>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/meter/${meterId}/calculatedBill/${versionId}/meterLineItem'\n                    .replace('${' + 'accountId' + '}', String(accountId))\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling manageMeterLineItems.');\n        }\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling manageMeterLineItems.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling manageMeterLineItems.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<GenericBodylineResponse>>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { ChargebackWorkflowDigestResponse } from '../model/chargebackWorkflowDigestResponse';\nimport { ChargebackWorkflowResponse } from '../model/chargebackWorkflowResponse';\nimport { ChargebackWorkflowSettings } from '../model/chargebackWorkflowSettings';\nimport { ChargebackWorkflowStepChild } from '../model/chargebackWorkflowStepChild';\nimport { CustomerResponse } from '../model/customerResponse';\nimport { DistributionVersionResponse } from '../model/distributionVersionResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsChargebacksModuleViewspanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Get a list of bill split versions which match the provided filter conditions\n     * \n     * @param filter API filter string containing conditions\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getBillSplitVersions(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<DistributionVersionResponse>> {\n        return this.getBillSplitVersionsWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<DistributionVersionResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a list of calculated bill versions which match the provided filter conditions\n     * \n     * @param filter API filter string containing conditions\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getCalculatedBillVersions(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<DistributionVersionResponse>> {\n        return this.getCalculatedBillVersionsWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<DistributionVersionResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a chargeback workflow\n     * \n     * @param chargebackWorkflowId Chargeback workflow id\n     */\n    public getChargebackWorkflow(chargebackWorkflowId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ChargebackWorkflowResponse> {\n        return this.getChargebackWorkflowWithHttpInfo(chargebackWorkflowId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ChargebackWorkflowResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a digest of all bills by meter for all meters involved in a chargeback workflow step for a given billing period.\n     * \n     * @param chargebackWorkflowStepId The id of the chargeback workflow step.\n     * @param billingPeriod The billing period of the digest.\n     */\n    public getChargebackWorkflowDigest(chargebackWorkflowStepId: number, billingPeriod?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ChargebackWorkflowDigestResponse> {\n        return this.getChargebackWorkflowDigestWithHttpInfo(chargebackWorkflowStepId, billingPeriod, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ChargebackWorkflowDigestResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get chargeback workflow settings\n     * \n     */\n    public getChargebackWorkflowSettings(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ChargebackWorkflowSettings> {\n        return this.getChargebackWorkflowSettingsWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ChargebackWorkflowSettings>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a single chargeback workflow step\n     * \n     * @param chargebackWorkflowStepId Workflow step ID\n     */\n    public getChargebackWorkflowStep(chargebackWorkflowStepId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ChargebackWorkflowStepChild> {\n        return this.getChargebackWorkflowStepWithHttpInfo(chargebackWorkflowStepId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ChargebackWorkflowStepChild>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a list of chargeback workflow steps\n     * \n     * @param chargebackWorkflowType Pass either \\&quot;split\\&quot; or \\&quot;calculation\\&quot; to filter workflow steps\n     */\n    public getChargebackWorkflowSteps(chargebackWorkflowType?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<ChargebackWorkflowStepChild>> {\n        return this.getChargebackWorkflowStepsWithHttpInfo(chargebackWorkflowType, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<ChargebackWorkflowStepChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a list of chargeback workflows\n     * \n     */\n    public getChargebackWorkflows(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<ChargebackWorkflowResponse>> {\n        return this.getChargebackWorkflowsWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<ChargebackWorkflowResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves an array of customers.\n     * \n     * @param filter \n     */\n    public getCustomers(filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<CustomerResponse>> {\n        return this.getCustomersWithHttpInfo(filter, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<CustomerResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Get a list of bill split versions which match the provided filter conditions\n     * \n     * @param filter API filter string containing conditions\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getBillSplitVersionsWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<DistributionVersionResponse>>> {\n        const path = this.basePath + '/api/v3/billSplit';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<DistributionVersionResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a list of calculated bill versions which match the provided filter conditions\n     * \n     * @param filter API filter string containing conditions\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getCalculatedBillVersionsWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<DistributionVersionResponse>>> {\n        const path = this.basePath + '/api/v3/calculatedBill';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<DistributionVersionResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a chargeback workflow\n     * \n     * @param chargebackWorkflowId Chargeback workflow id\n     */\n    public getChargebackWorkflowWithHttpInfo(chargebackWorkflowId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ChargebackWorkflowResponse>> {\n        const path = this.basePath + '/api/v3/chargebackWorkflow/${chargebackWorkflowId}'\n                    .replace('${' + 'chargebackWorkflowId' + '}', String(chargebackWorkflowId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'chargebackWorkflowId' is not null or undefined\n        if (chargebackWorkflowId === null || chargebackWorkflowId === undefined) {\n            throw new Error('Required parameter chargebackWorkflowId was null or undefined when calling getChargebackWorkflow.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ChargebackWorkflowResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a digest of all bills by meter for all meters involved in a chargeback workflow step for a given billing period.\n     * \n     * @param chargebackWorkflowStepId The id of the chargeback workflow step.\n     * @param billingPeriod The billing period of the digest.\n     */\n    public getChargebackWorkflowDigestWithHttpInfo(chargebackWorkflowStepId: number, billingPeriod?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ChargebackWorkflowDigestResponse>> {\n        const path = this.basePath + '/api/v3/chargebackWorkflow/${chargebackWorkflowStepId}/digest'\n                    .replace('${' + 'chargebackWorkflowStepId' + '}', String(chargebackWorkflowStepId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'chargebackWorkflowStepId' is not null or undefined\n        if (chargebackWorkflowStepId === null || chargebackWorkflowStepId === undefined) {\n            throw new Error('Required parameter chargebackWorkflowStepId was null or undefined when calling getChargebackWorkflowDigest.');\n        }\n        if (billingPeriod !== undefined) {\n            queryParameters = queryParameters.set('billingPeriod', <any>billingPeriod);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ChargebackWorkflowDigestResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get chargeback workflow settings\n     * \n     */\n    public getChargebackWorkflowSettingsWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ChargebackWorkflowSettings>> {\n        const path = this.basePath + '/api/v3/workflow/chargeback';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ChargebackWorkflowSettings>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a single chargeback workflow step\n     * \n     * @param chargebackWorkflowStepId Workflow step ID\n     */\n    public getChargebackWorkflowStepWithHttpInfo(chargebackWorkflowStepId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ChargebackWorkflowStepChild>> {\n        const path = this.basePath + '/api/v3/chargebackWorkflowStep/${chargebackWorkflowStepId}'\n                    .replace('${' + 'chargebackWorkflowStepId' + '}', String(chargebackWorkflowStepId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'chargebackWorkflowStepId' is not null or undefined\n        if (chargebackWorkflowStepId === null || chargebackWorkflowStepId === undefined) {\n            throw new Error('Required parameter chargebackWorkflowStepId was null or undefined when calling getChargebackWorkflowStep.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ChargebackWorkflowStepChild>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a list of chargeback workflow steps\n     * \n     * @param chargebackWorkflowType Pass either \\&quot;split\\&quot; or \\&quot;calculation\\&quot; to filter workflow steps\n     */\n    public getChargebackWorkflowStepsWithHttpInfo(chargebackWorkflowType?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<ChargebackWorkflowStepChild>>> {\n        const path = this.basePath + '/api/v3/chargebackWorkflowStep';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (chargebackWorkflowType !== undefined) {\n            queryParameters = queryParameters.set('chargebackWorkflowType', <any>chargebackWorkflowType);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<ChargebackWorkflowStepChild>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a list of chargeback workflows\n     * \n     */\n    public getChargebackWorkflowsWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<ChargebackWorkflowResponse>>> {\n        const path = this.basePath + '/api/v3/chargebackWorkflow';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<ChargebackWorkflowResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves an array of customers.\n     * \n     * @param filter \n     */\n    public getCustomersWithHttpInfo(filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<CustomerResponse>>> {\n        const path = this.basePath + '/api/v3/customer';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<CustomerResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { BillActionSplit } from '../model/billActionSplit';\nimport { ChargebackProcessorSettings } from '../model/chargebackProcessorSettings';\nimport { ChargebackProcessorSettingsForAggregations } from '../model/chargebackProcessorSettingsForAggregations';\nimport { ChargebackProcessorSettingsForSplits } from '../model/chargebackProcessorSettingsForSplits';\nimport { ChargebackProcessorSettingsWithoutFilters } from '../model/chargebackProcessorSettingsWithoutFilters';\nimport { ChargebackTaskRequest } from '../model/chargebackTaskRequest';\nimport { ChargebackTaskResponse } from '../model/chargebackTaskResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsChargebacksRunspanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Run the bill split processor on the given list of bills. Optional note can be provided. Optional batch settings can be provided that will allow custom batchcode and bill headers for the destination bills\n     * \n     * @param body \n     */\n    public billActionSplit(body?: BillActionSplit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ChargebackTaskResponse> {\n        return this.billActionSplitWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ChargebackTaskResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Process one or more Bill Split distributions for a specific billing period\n     * \n     * @param body \n     */\n    public executeBillSplitProcessor(body?: ChargebackProcessorSettings, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ChargebackTaskResponse> {\n        return this.executeBillSplitProcessorWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ChargebackTaskResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Process one or more Calculated Bill distributions for a specific billing period\n     * \n     * @param body \n     */\n    public executeCalculateBillProcessor(body?: ChargebackProcessorSettings, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ChargebackTaskResponse> {\n        return this.executeCalculateBillProcessorWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ChargebackTaskResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Process one or more Calculated Bill aggregations within a billing period range ending with the specified billing period. If billing period is not supplied, the current period will be assumed.\n     * \n     * @param body \n     */\n    public executeProcessorAggregations(body?: ChargebackProcessorSettingsForAggregations, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ChargebackTaskResponse> {\n        return this.executeProcessorAggregationsWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ChargebackTaskResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Process distributions assigned to a chargeback workflow for a specific billing period. If settings are not provided, the last month will be processed.\n     * \n     * @param chargebackWorkflowId The chargeback workflow id\n     * @param body The processor settings\n     */\n    public executeProcessorByWorkflow(chargebackWorkflowId: number, body?: ChargebackProcessorSettingsWithoutFilters, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<ChargebackTaskResponse>> {\n        return this.executeProcessorByWorkflowWithHttpInfo(chargebackWorkflowId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<ChargebackTaskResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Process distributions assigned to a chargeback workflow step for a specific billing period\n     * \n     * @param chargebackWorkflowStepId The chargeback workflow step id.\n     * @param body The other processor settings.\n     */\n    public executeProcessorByWorkflowStep(chargebackWorkflowStepId: number, body?: ChargebackProcessorSettingsWithoutFilters, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ChargebackTaskResponse> {\n        return this.executeProcessorByWorkflowStepWithHttpInfo(chargebackWorkflowStepId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ChargebackTaskResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Split all bills eligible to be split in a bill list\n     * \n     * @param listId The list identifier\n     * @param body Optional note and batch settings can be provided. Batch Settings will allow custom batchcode and bill headers for the destination bills\n     */\n    public splitBillList(listId: number, body?: ChargebackProcessorSettingsForSplits, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ChargebackTaskResponse> {\n        return this.splitBillListWithHttpInfo(listId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ChargebackTaskResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Update a chargeback task&#39;s comment\n     * \n     * @param taskId Identifier for the chargeback task to update\n     * @param body Data representing the comment\n     */\n    public updateChargebackTask(taskId: number, body?: ChargebackTaskRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ChargebackTaskResponse> {\n        return this.updateChargebackTaskWithHttpInfo(taskId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ChargebackTaskResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Run the bill split processor on the given list of bills. Optional note can be provided. Optional batch settings can be provided that will allow custom batchcode and bill headers for the destination bills\n     * \n     * @param body \n     */\n    public billActionSplitWithHttpInfo(body?: BillActionSplit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ChargebackTaskResponse>> {\n        const path = this.basePath + '/api/v3/bill/split';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ChargebackTaskResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Process one or more Bill Split distributions for a specific billing period\n     * \n     * @param body \n     */\n    public executeBillSplitProcessorWithHttpInfo(body?: ChargebackProcessorSettings, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ChargebackTaskResponse>> {\n        const path = this.basePath + '/api/v3/billSplit/exec';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ChargebackTaskResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Process one or more Calculated Bill distributions for a specific billing period\n     * \n     * @param body \n     */\n    public executeCalculateBillProcessorWithHttpInfo(body?: ChargebackProcessorSettings, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ChargebackTaskResponse>> {\n        const path = this.basePath + '/api/v3/calculatedBill/exec';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ChargebackTaskResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Process one or more Calculated Bill aggregations within a billing period range ending with the specified billing period. If billing period is not supplied, the current period will be assumed.\n     * \n     * @param body \n     */\n    public executeProcessorAggregationsWithHttpInfo(body?: ChargebackProcessorSettingsForAggregations, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ChargebackTaskResponse>> {\n        const path = this.basePath + '/api/v202203/utilityPlatform/aggregations/exec';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ChargebackTaskResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Process distributions assigned to a chargeback workflow for a specific billing period. If settings are not provided, the last month will be processed.\n     * \n     * @param chargebackWorkflowId The chargeback workflow id\n     * @param body The processor settings\n     */\n    public executeProcessorByWorkflowWithHttpInfo(chargebackWorkflowId: number, body?: ChargebackProcessorSettingsWithoutFilters, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<ChargebackTaskResponse>>> {\n        const path = this.basePath + '/api/v202304/chargebackWorkflow/${chargebackWorkflowId}/exec'\n                    .replace('${' + 'chargebackWorkflowId' + '}', String(chargebackWorkflowId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'chargebackWorkflowId' is not null or undefined\n        if (chargebackWorkflowId === null || chargebackWorkflowId === undefined) {\n            throw new Error('Required parameter chargebackWorkflowId was null or undefined when calling executeProcessorByWorkflow.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<ChargebackTaskResponse>>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Process distributions assigned to a chargeback workflow step for a specific billing period\n     * \n     * @param chargebackWorkflowStepId The chargeback workflow step id.\n     * @param body The other processor settings.\n     */\n    public executeProcessorByWorkflowStepWithHttpInfo(chargebackWorkflowStepId: number, body?: ChargebackProcessorSettingsWithoutFilters, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ChargebackTaskResponse>> {\n        const path = this.basePath + '/api/v3/chargebackWorkflowStep/${chargebackWorkflowStepId}/exec'\n                    .replace('${' + 'chargebackWorkflowStepId' + '}', String(chargebackWorkflowStepId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'chargebackWorkflowStepId' is not null or undefined\n        if (chargebackWorkflowStepId === null || chargebackWorkflowStepId === undefined) {\n            throw new Error('Required parameter chargebackWorkflowStepId was null or undefined when calling executeProcessorByWorkflowStep.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ChargebackTaskResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Split all bills eligible to be split in a bill list\n     * \n     * @param listId The list identifier\n     * @param body Optional note and batch settings can be provided. Batch Settings will allow custom batchcode and bill headers for the destination bills\n     */\n    public splitBillListWithHttpInfo(listId: number, body?: ChargebackProcessorSettingsForSplits, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ChargebackTaskResponse>> {\n        const path = this.basePath + '/api/v3/list/${listId}/split'\n                    .replace('${' + 'listId' + '}', String(listId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'listId' is not null or undefined\n        if (listId === null || listId === undefined) {\n            throw new Error('Required parameter listId was null or undefined when calling splitBillList.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ChargebackTaskResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Update a chargeback task&#39;s comment\n     * \n     * @param taskId Identifier for the chargeback task to update\n     * @param body Data representing the comment\n     */\n    public updateChargebackTaskWithHttpInfo(taskId: number, body?: ChargebackTaskRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ChargebackTaskResponse>> {\n        const path = this.basePath + '/api/v3/chargebackTask/${taskId}'\n                    .replace('${' + 'taskId' + '}', String(taskId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'taskId' is not null or undefined\n        if (taskId === null || taskId === undefined) {\n            throw new Error('Required parameter taskId was null or undefined when calling updateChargebackTask.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ChargebackTaskResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { CollectionRequest } from '../model/collectionRequest';\nimport { CollectionResponse } from '../model/collectionResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsCollectionsCreatespanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Creates a collection\n     * \n     * @param body Data representing the collection being created\n     */\n    public createCollection(body?: CollectionRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CollectionResponse> {\n        return this.createCollectionWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CollectionResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Creates a collection\n     * \n     * @param body Data representing the collection being created\n     */\n    public createCollectionWithHttpInfo(body?: CollectionRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CollectionResponse>> {\n        const path = this.basePath + '/api/v202306/collection';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CollectionResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsCollectionsDeletespanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Deletes a collection\n     * \n     * @param collectionId The identifier for the collection being deleted\n     */\n    public deleteCollection(collectionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteCollectionWithHttpInfo(collectionId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Deletes a collection\n     * \n     * @param collectionId The identifier for the collection being deleted\n     */\n    public deleteCollectionWithHttpInfo(collectionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202306/collection/${collectionId}'\n                    .replace('${' + 'collectionId' + '}', String(collectionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'collectionId' is not null or undefined\n        if (collectionId === null || collectionId === undefined) {\n            throw new Error('Required parameter collectionId was null or undefined when calling deleteCollection.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { CollectionRequest } from '../model/collectionRequest';\nimport { CollectionResponse } from '../model/collectionResponse';\nimport { UDFFieldChild } from '../model/uDFFieldChild';\nimport { UDFValue } from '../model/uDFValue';\nimport { UpdateResult } from '../model/updateResult';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsCollectionsEditspanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Edits a collection\n     * \n     * @param collectionId The identifier for the collection being edited\n     * @param body Data representing the collection being edited\n     */\n    public editCollection(collectionId: number, body?: CollectionRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CollectionResponse> {\n        return this.editCollectionWithHttpInfo(collectionId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CollectionResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit the custom field values on a collection\n     * \n     * @param collectionId The id of the collection\n     * @param body The list of udf values being edited\n     */\n    public editCollectionCustomFields(collectionId: number, body?: Array<UDFValue>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<UDFFieldChild>> {\n        return this.editCollectionCustomFieldsWithHttpInfo(collectionId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<UDFFieldChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * \n     * \n     * @param parentCollectionId \n     * @param body \n     */\n    public moveCollections(parentCollectionId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.moveCollectionsWithHttpInfo(parentCollectionId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Edits a collection\n     * \n     * @param collectionId The identifier for the collection being edited\n     * @param body Data representing the collection being edited\n     */\n    public editCollectionWithHttpInfo(collectionId: number, body?: CollectionRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CollectionResponse>> {\n        const path = this.basePath + '/api/v202306/collection/${collectionId}'\n                    .replace('${' + 'collectionId' + '}', String(collectionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'collectionId' is not null or undefined\n        if (collectionId === null || collectionId === undefined) {\n            throw new Error('Required parameter collectionId was null or undefined when calling editCollection.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CollectionResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edit the custom field values on a collection\n     * \n     * @param collectionId The id of the collection\n     * @param body The list of udf values being edited\n     */\n    public editCollectionCustomFieldsWithHttpInfo(collectionId: number, body?: Array<UDFValue>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<UDFFieldChild>>> {\n        const path = this.basePath + '/api/v202501/collection/${collectionId}/udf'\n                    .replace('${' + 'collectionId' + '}', String(collectionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'collectionId' is not null or undefined\n        if (collectionId === null || collectionId === undefined) {\n            throw new Error('Required parameter collectionId was null or undefined when calling editCollectionCustomFields.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<UDFFieldChild>>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * \n     * \n     * @param parentCollectionId \n     * @param body \n     */\n    public moveCollectionsWithHttpInfo(parentCollectionId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v202309/parentCollection/${parentCollectionId}/collection'\n                    .replace('${' + 'parentCollectionId' + '}', String(parentCollectionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'parentCollectionId' is not null or undefined\n        if (parentCollectionId === null || parentCollectionId === undefined) {\n            throw new Error('Required parameter parentCollectionId was null or undefined when calling moveCollections.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { CollectionResponse } from '../model/collectionResponse';\nimport { HierarchicalCollections } from '../model/hierarchicalCollections';\nimport { UDFFieldChild } from '../model/uDFFieldChild';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsCollectionsViewspanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Download file for a collection custom field\n     * \n     * @param collectionId The id of the collection\n     * @param udfId The id of the custom field\n     */\n    public downloadCollectionCustomFields(collectionId: number, udfId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.downloadCollectionCustomFieldsWithHttpInfo(collectionId, udfId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves the collection by ID\n     * \n     * @param collectionId The identifier for the collection being retrieved\n     */\n    public getCollection(collectionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CollectionResponse> {\n        return this.getCollectionWithHttpInfo(collectionId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CollectionResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get custom field values for a collection\n     * \n     * @param collectionId The id of the collection\n     */\n    public getCollectionCustomFields(collectionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<UDFFieldChild>> {\n        return this.getCollectionCustomFieldsWithHttpInfo(collectionId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<UDFFieldChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all the collections\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getCollections(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<CollectionResponse>> {\n        return this.getCollectionsWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<CollectionResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Returns collection ancestry information, useful for populating a tree of collections\n     * \n     * @param collectionId Collection ID\n     */\n    public hierarchicalAncestryCollections(collectionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HierarchicalCollections> {\n        return this.hierarchicalAncestryCollectionsWithHttpInfo(collectionId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<HierarchicalCollections>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Returns emission source ancestry information, useful for populating a tree of collections\n     * \n     * @param emissionSourceId Emission Source ID\n     */\n    public hierarchicalAncestryEmissionSources(emissionSourceId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HierarchicalCollections> {\n        return this.hierarchicalAncestryEmissionSourcesWithHttpInfo(emissionSourceId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<HierarchicalCollections>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Returns collection descendant information, useful for expanding a collection node\n     * \n     * @param collectionId Collection ID\n     */\n    public hierarchicalCollection(collectionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HierarchicalCollections> {\n        return this.hierarchicalCollectionWithHttpInfo(collectionId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<HierarchicalCollections>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Download file for a collection custom field\n     * \n     * @param collectionId The id of the collection\n     * @param udfId The id of the custom field\n     */\n    public downloadCollectionCustomFieldsWithHttpInfo(collectionId: number, udfId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202501/collection/${collectionId}/udf/${udfId}/download'\n                    .replace('${' + 'collectionId' + '}', String(collectionId))\n                    .replace('${' + 'udfId' + '}', String(udfId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'collectionId' is not null or undefined\n        if (collectionId === null || collectionId === undefined) {\n            throw new Error('Required parameter collectionId was null or undefined when calling downloadCollectionCustomFields.');\n        }\n        // verify required parameter 'udfId' is not null or undefined\n        if (udfId === null || udfId === undefined) {\n            throw new Error('Required parameter udfId was null or undefined when calling downloadCollectionCustomFields.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves the collection by ID\n     * \n     * @param collectionId The identifier for the collection being retrieved\n     */\n    public getCollectionWithHttpInfo(collectionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CollectionResponse>> {\n        const path = this.basePath + '/api/v202306/collection/${collectionId}'\n                    .replace('${' + 'collectionId' + '}', String(collectionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'collectionId' is not null or undefined\n        if (collectionId === null || collectionId === undefined) {\n            throw new Error('Required parameter collectionId was null or undefined when calling getCollection.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CollectionResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get custom field values for a collection\n     * \n     * @param collectionId The id of the collection\n     */\n    public getCollectionCustomFieldsWithHttpInfo(collectionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<UDFFieldChild>>> {\n        const path = this.basePath + '/api/v202501/collection/${collectionId}/udf'\n                    .replace('${' + 'collectionId' + '}', String(collectionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'collectionId' is not null or undefined\n        if (collectionId === null || collectionId === undefined) {\n            throw new Error('Required parameter collectionId was null or undefined when calling getCollectionCustomFields.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<UDFFieldChild>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all the collections\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getCollectionsWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<CollectionResponse>>> {\n        const path = this.basePath + '/api/v202306/collection';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<CollectionResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Returns collection ancestry information, useful for populating a tree of collections\n     * \n     * @param collectionId Collection ID\n     */\n    public hierarchicalAncestryCollectionsWithHttpInfo(collectionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<HierarchicalCollections>> {\n        const path = this.basePath + '/api/v202306/hierarchy/ancestry/collection/${collectionId}'\n                    .replace('${' + 'collectionId' + '}', String(collectionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'collectionId' is not null or undefined\n        if (collectionId === null || collectionId === undefined) {\n            throw new Error('Required parameter collectionId was null or undefined when calling hierarchicalAncestryCollections.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<HierarchicalCollections>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Returns emission source ancestry information, useful for populating a tree of collections\n     * \n     * @param emissionSourceId Emission Source ID\n     */\n    public hierarchicalAncestryEmissionSourcesWithHttpInfo(emissionSourceId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<HierarchicalCollections>> {\n        const path = this.basePath + '/api/v202306/hierarchy/ancestry/emissionSource/${emissionSourceId}'\n                    .replace('${' + 'emissionSourceId' + '}', String(emissionSourceId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'emissionSourceId' is not null or undefined\n        if (emissionSourceId === null || emissionSourceId === undefined) {\n            throw new Error('Required parameter emissionSourceId was null or undefined when calling hierarchicalAncestryEmissionSources.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<HierarchicalCollections>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Returns collection descendant information, useful for expanding a collection node\n     * \n     * @param collectionId Collection ID\n     */\n    public hierarchicalCollectionWithHttpInfo(collectionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<HierarchicalCollections>> {\n        const path = this.basePath + '/api/v202306/hierarchy/collection/${collectionId}'\n                    .replace('${' + 'collectionId' + '}', String(collectionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'collectionId' is not null or undefined\n        if (collectionId === null || collectionId === undefined) {\n            throw new Error('Required parameter collectionId was null or undefined when calling hierarchicalCollection.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<HierarchicalCollections>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { CostCenterCreate } from '../model/costCenterCreate';\nimport { CostCenterResponse } from '../model/costCenterResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsCostCentersCreatespanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Creates a Cost Center\n     * \n     * @param body Data representing the cost center being created\n     */\n    public createCostCenter(body?: CostCenterCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CostCenterResponse> {\n        return this.createCostCenterWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CostCenterResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Creates a Cost Center\n     * \n     * @param body Data representing the cost center being created\n     */\n    public createCostCenterWithHttpInfo(body?: CostCenterCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CostCenterResponse>> {\n        const path = this.basePath + '/api/v3/costcenter';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CostCenterResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsCostCentersDeletespanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Deletes a cost center\n     * \n     * @param costCenterId The identifier for the cost center being deleted\n     */\n    public deleteCostCenter(costCenterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteCostCenterWithHttpInfo(costCenterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Deletes a cost center\n     * \n     * @param costCenterId The identifier for the cost center being deleted\n     */\n    public deleteCostCenterWithHttpInfo(costCenterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/costcenter/${costCenterId}'\n                    .replace('${' + 'costCenterId' + '}', String(costCenterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'costCenterId' is not null or undefined\n        if (costCenterId === null || costCenterId === undefined) {\n            throw new Error('Required parameter costCenterId was null or undefined when calling deleteCostCenter.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { CostCenterCreate } from '../model/costCenterCreate';\nimport { CostCenterResponse } from '../model/costCenterResponse';\nimport { UpdateResult } from '../model/updateResult';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsCostCentersEditspanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Edits a cost center\n     * \n     * @param costCenterId The identifier for the cost center being edited\n     * @param body Data representing the cost center being edited\n     */\n    public editCostCenter(costCenterId: number, body?: CostCenterCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CostCenterResponse> {\n        return this.editCostCenterWithHttpInfo(costCenterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CostCenterResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Move list of costCenters to be under parentCostCenterId\n     * \n     * @param parentCostCenterId The identifier for the new parent costCenter\n     * @param body List of costCenterIds to move under the parentCostCenterId\n     */\n    public moveCostCenter(parentCostCenterId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.moveCostCenterWithHttpInfo(parentCostCenterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Edits a cost center\n     * \n     * @param costCenterId The identifier for the cost center being edited\n     * @param body Data representing the cost center being edited\n     */\n    public editCostCenterWithHttpInfo(costCenterId: number, body?: CostCenterCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CostCenterResponse>> {\n        const path = this.basePath + '/api/v3/costcenter/${costCenterId}'\n                    .replace('${' + 'costCenterId' + '}', String(costCenterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'costCenterId' is not null or undefined\n        if (costCenterId === null || costCenterId === undefined) {\n            throw new Error('Required parameter costCenterId was null or undefined when calling editCostCenter.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CostCenterResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Move list of costCenters to be under parentCostCenterId\n     * \n     * @param parentCostCenterId The identifier for the new parent costCenter\n     * @param body List of costCenterIds to move under the parentCostCenterId\n     */\n    public moveCostCenterWithHttpInfo(parentCostCenterId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/parentCostCenter/${parentCostCenterId}/costCenter'\n                    .replace('${' + 'parentCostCenterId' + '}', String(parentCostCenterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'parentCostCenterId' is not null or undefined\n        if (parentCostCenterId === null || parentCostCenterId === undefined) {\n            throw new Error('Required parameter parentCostCenterId was null or undefined when calling moveCostCenter.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { CostCenterDigestActualMonthlyResponse } from '../model/costCenterDigestActualMonthlyResponse';\nimport { CostCenterDigestActualYearlyResponse } from '../model/costCenterDigestActualYearlyResponse';\nimport { CostCenterResponse } from '../model/costCenterResponse';\nimport { HierarchicalCostCenters } from '../model/hierarchicalCostCenters';\nimport { PlaceChild } from '../model/placeChild';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsCostCentersViewspanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * For a list of topmost cost centers, get associated topmost places.\n     * \n     * @param body List of costCenterIds to get associated topmost places.\n     */\n    public availablePlacesForTopmostCostCenters(body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PlaceChild>> {\n        return this.availablePlacesForTopmostCostCentersWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PlaceChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves the cost center by ID\n     * \n     * @param costCenterId The identifier for the cost center being retrieved\n     */\n    public getCostCenter(costCenterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CostCenterResponse> {\n        return this.getCostCenterWithHttpInfo(costCenterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CostCenterResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by costCenter for a given number of years- Result includes cost, use, unit cost on a monthly basis. It also includes commodity level break up.\n     * \n     * @param costCenterId The costCenter to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 24 months\n     */\n    public getCostCenterActualMonthly(costCenterId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CostCenterDigestActualMonthlyResponse> {\n        return this.getCostCenterActualMonthlyWithHttpInfo(costCenterId, numberOfYears, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CostCenterDigestActualMonthlyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by costCenter for a given number of years- Result includes cost, use, unit cost on a monthly basis. It also includes commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 24 months\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getCostCenterActualMonthlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<CostCenterDigestActualMonthlyResponse>> {\n        return this.getCostCenterActualMonthlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<CostCenterDigestActualMonthlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by costCenter for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes commodity level break up.\n     * \n     * @param costCenterId The costCenter to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getCostCenterActualYearly(costCenterId: number, numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CostCenterDigestActualYearlyResponse> {\n        return this.getCostCenterActualYearlyWithHttpInfo(costCenterId, numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CostCenterDigestActualYearlyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by costCenter for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getCostCenterActualYearlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<CostCenterDigestActualYearlyResponse>> {\n        return this.getCostCenterActualYearlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<CostCenterDigestActualYearlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all the cost centers\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getCostCenters(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<CostCenterResponse>> {\n        return this.getCostCentersWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<CostCenterResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Returns account ancestry information, useful for populating a tree of costCenters\n     * \n     * @param accountId Account ID\n     */\n    public hierarchicalAncestryAccounts(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HierarchicalCostCenters> {\n        return this.hierarchicalAncestryAccountsWithHttpInfo(accountId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<HierarchicalCostCenters>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Returns cost center ancestry information, useful for populating a tree of cost centers\n     * \n     * @param costCenterId CostCenter ID\n     */\n    public hierarchicalAncestryCostCenters(costCenterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HierarchicalCostCenters> {\n        return this.hierarchicalAncestryCostCentersWithHttpInfo(costCenterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<HierarchicalCostCenters>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Returns costCenter descendant information, useful for expanding a costCenter node\n     * \n     * @param costCenterId CostCenter ID\n     */\n    public hierarchicalCostCenter(costCenterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HierarchicalCostCenters> {\n        return this.hierarchicalCostCenterWithHttpInfo(costCenterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<HierarchicalCostCenters>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * For a list of topmost cost centers, get associated topmost places.\n     * \n     * @param body List of costCenterIds to get associated topmost places.\n     */\n    public availablePlacesForTopmostCostCentersWithHttpInfo(body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PlaceChild>>> {\n        const path = this.basePath + '/api/v3/hierarchy/costCenter/availablePlaces';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PlaceChild>>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Retrieves the cost center by ID\n     * \n     * @param costCenterId The identifier for the cost center being retrieved\n     */\n    public getCostCenterWithHttpInfo(costCenterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CostCenterResponse>> {\n        const path = this.basePath + '/api/v3/costcenter/${costCenterId}'\n                    .replace('${' + 'costCenterId' + '}', String(costCenterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'costCenterId' is not null or undefined\n        if (costCenterId === null || costCenterId === undefined) {\n            throw new Error('Required parameter costCenterId was null or undefined when calling getCostCenter.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CostCenterResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by costCenter for a given number of years- Result includes cost, use, unit cost on a monthly basis. It also includes commodity level break up.\n     * \n     * @param costCenterId The costCenter to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 24 months\n     */\n    public getCostCenterActualMonthlyWithHttpInfo(costCenterId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CostCenterDigestActualMonthlyResponse>> {\n        const path = this.basePath + '/api/v3/costCenter/${costCenterId}/digest/actual/monthly'\n                    .replace('${' + 'costCenterId' + '}', String(costCenterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'costCenterId' is not null or undefined\n        if (costCenterId === null || costCenterId === undefined) {\n            throw new Error('Required parameter costCenterId was null or undefined when calling getCostCenterActualMonthly.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CostCenterDigestActualMonthlyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by costCenter for a given number of years- Result includes cost, use, unit cost on a monthly basis. It also includes commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 24 months\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getCostCenterActualMonthlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<CostCenterDigestActualMonthlyResponse>>> {\n        const path = this.basePath + '/api/v3/costCenter/digest/actual/monthly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<CostCenterDigestActualMonthlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by costCenter for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes commodity level break up.\n     * \n     * @param costCenterId The costCenter to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getCostCenterActualYearlyWithHttpInfo(costCenterId: number, numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CostCenterDigestActualYearlyResponse>> {\n        const path = this.basePath + '/api/v3/costCenter/${costCenterId}/digest/actual/yearly'\n                    .replace('${' + 'costCenterId' + '}', String(costCenterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'costCenterId' is not null or undefined\n        if (costCenterId === null || costCenterId === undefined) {\n            throw new Error('Required parameter costCenterId was null or undefined when calling getCostCenterActualYearly.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CostCenterDigestActualYearlyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by costCenter for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes commodity level break up.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getCostCenterActualYearlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<CostCenterDigestActualYearlyResponse>>> {\n        const path = this.basePath + '/api/v3/costCenter/digest/actual/yearly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<CostCenterDigestActualYearlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all the cost centers\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getCostCentersWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<CostCenterResponse>>> {\n        const path = this.basePath + '/api/v3/costcenter';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<CostCenterResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Returns account ancestry information, useful for populating a tree of costCenters\n     * \n     * @param accountId Account ID\n     */\n    public hierarchicalAncestryAccountsWithHttpInfo(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<HierarchicalCostCenters>> {\n        const path = this.basePath + '/api/v3/hierarchy/ancestry/account/${accountId}'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling hierarchicalAncestryAccounts.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<HierarchicalCostCenters>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Returns cost center ancestry information, useful for populating a tree of cost centers\n     * \n     * @param costCenterId CostCenter ID\n     */\n    public hierarchicalAncestryCostCentersWithHttpInfo(costCenterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<HierarchicalCostCenters>> {\n        const path = this.basePath + '/api/v3/hierarchy/ancestry/costCenter/${costCenterId}'\n                    .replace('${' + 'costCenterId' + '}', String(costCenterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'costCenterId' is not null or undefined\n        if (costCenterId === null || costCenterId === undefined) {\n            throw new Error('Required parameter costCenterId was null or undefined when calling hierarchicalAncestryCostCenters.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<HierarchicalCostCenters>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Returns costCenter descendant information, useful for expanding a costCenter node\n     * \n     * @param costCenterId CostCenter ID\n     */\n    public hierarchicalCostCenterWithHttpInfo(costCenterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<HierarchicalCostCenters>> {\n        const path = this.basePath + '/api/v3/hierarchy/costCenter/${costCenterId}'\n                    .replace('${' + 'costCenterId' + '}', String(costCenterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'costCenterId' is not null or undefined\n        if (costCenterId === null || costCenterId === undefined) {\n            throw new Error('Required parameter costCenterId was null or undefined when calling hierarchicalCostCenter.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<HierarchicalCostCenters>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { DashboardCopy } from '../model/dashboardCopy';\nimport { DashboardCreate } from '../model/dashboardCreate';\nimport { DashboardEdit } from '../model/dashboardEdit';\nimport { DashboardResponse } from '../model/dashboardResponse';\nimport { MapDashboardSettingsRequest } from '../model/mapDashboardSettingsRequest';\nimport { MapDashboardSettingsResponse } from '../model/mapDashboardSettingsResponse';\nimport { SpecificWidgetResponse } from '../model/specificWidgetResponse';\nimport { ToggleVisible } from '../model/toggleVisible';\nimport { WidgetCreate } from '../model/widgetCreate';\nimport { WidgetEdit } from '../model/widgetEdit';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsDashboardAndMapsModuleViewspanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Add a widget to a dashboard To add widgets to a dashboard you must have created the dashboard or have DashboardAdministrator Manage permission and the dashboard is shared at all or have DashboardAdministrator Manage permission and the dashboard is public or have SharedDashboardsOrMaps Edit permission and the dashboard is shared with you\n     * \n     * @param dashboardId dashboard\n     * @param body Request object\n     */\n    public addWidget(dashboardId: number, body?: WidgetCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<SpecificWidgetResponse> {\n        return this.addWidgetWithHttpInfo(dashboardId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<SpecificWidgetResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Copy a dashboard To copy a dashboard you must have created the dashboard or have DashboardAdministrator Manage permission and the dashboard is shared at all or have DashboardAdministrator Manage permission and the dashboard is public or have SharedDashboardsOrMaps View permission and the dashboard is shared with you\n     * \n     * @param dashboardId Specific dashboard\n     * @param body Request object\n     */\n    public copyDashboard(dashboardId: number, body?: DashboardCopy, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<DashboardResponse> {\n        return this.copyDashboardWithHttpInfo(dashboardId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<DashboardResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Creates a dashboard\n     * \n     * @param body \n     */\n    public createDashboard(body?: DashboardCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<DashboardResponse> {\n        return this.createDashboardWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<DashboardResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Update the visibility of a dashboard for the current user This must be a dashboard you can see Which means you must have created the dashboard or have DashboardAdministrator Manage permission and the dashboard is shared at all or have DashboardAdministrator Manage permission and the dashboard is public or have SharedDashboardsOrMaps View permission and the dashboard is shared with you\n     * \n     * @param dashboardId Specific dashboard\n     * @param body Set Visibility\n     */\n    public dashboardActionVisible(dashboardId: number, body?: ToggleVisible, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<DashboardResponse> {\n        return this.dashboardActionVisibleWithHttpInfo(dashboardId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<DashboardResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete a dashboard To delete a dashboard you must have created it or have DashboardAdministrator Manage permission and the dashboard is shared at all or have DashboardAdministrator Manage permission and the dashboard is public\n     * \n     * @param dashboardId Specific dashboard\n     */\n    public deleteDashboard(dashboardId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteDashboardWithHttpInfo(dashboardId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit a dashboard To edit a dashboard you must have created the dashboard or have DashboardAdministrator Manage permission and the dashboard is shared at all or have DashboardAdministrator Manage permission and the dashboard is public or have SharedDashboardsOrMaps Edit permission and the dashboard is shared with you\n     * \n     * @param dashboardId \n     * @param body \n     */\n    public editDashboard(dashboardId: number, body?: DashboardEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<DashboardResponse> {\n        return this.editDashboardWithHttpInfo(dashboardId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<DashboardResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Reorder, edit, and delete specific widgets on a dashboard. To edit dashboard widgets you must have created the dashboard or have DashboardAdministrator Manage permission and the dashboard is shared at all or have DashboardAdministrator Manage permission and the dashboard is public or have SharedDashboardsOrMaps Edit permission and the dashboard is shared with you\n     * \n     * @param dashboardId dashboard\n     * @param body Request object\n     */\n    public editDashboardWidgets(dashboardId: number, body?: Array<WidgetEdit>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<SpecificWidgetResponse>> {\n        return this.editDashboardWidgetsWithHttpInfo(dashboardId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<SpecificWidgetResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Applies display settings and filters to a map dashboard. These settings are specific to map dashboards, and cannot be applied to standard dashboards. To apply these settings, You must also have either: Created the dashboard or have DashboardAdministrator Manage and the dashboard is shared at all or have DashboardAdministrator Manage permission and the dashboard is public or have SharedDashboardsOrMaps Edit permission and the dashboard is shared with you\n     * \n     * @param dashboardId The identifier of the dashboard to apply these settings to\n     * @param body Object containing the settings to be applied.\n     */\n    public editMapDashboardSettings(dashboardId: number, body?: MapDashboardSettingsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<MapDashboardSettingsResponse> {\n        return this.editMapDashboardSettingsWithHttpInfo(dashboardId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<MapDashboardSettingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Gets the current display settings and filters for a specific map dashboard. Cannot be used to retreive settings for a standard dashboard.\n     * \n     * @param dashboardId The identifier of the dashboard to get the settings of\n     */\n    public getMapDashboardSettings(dashboardId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<MapDashboardSettingsResponse> {\n        return this.getMapDashboardSettingsWithHttpInfo(dashboardId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<MapDashboardSettingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Add a widget to a dashboard To add widgets to a dashboard you must have created the dashboard or have DashboardAdministrator Manage permission and the dashboard is shared at all or have DashboardAdministrator Manage permission and the dashboard is public or have SharedDashboardsOrMaps Edit permission and the dashboard is shared with you\n     * \n     * @param dashboardId dashboard\n     * @param body Request object\n     */\n    public addWidgetWithHttpInfo(dashboardId: number, body?: WidgetCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<SpecificWidgetResponse>> {\n        const path = this.basePath + '/api/v3/dashboard/${dashboardId}/widget'\n                    .replace('${' + 'dashboardId' + '}', String(dashboardId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'dashboardId' is not null or undefined\n        if (dashboardId === null || dashboardId === undefined) {\n            throw new Error('Required parameter dashboardId was null or undefined when calling addWidget.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<SpecificWidgetResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Copy a dashboard To copy a dashboard you must have created the dashboard or have DashboardAdministrator Manage permission and the dashboard is shared at all or have DashboardAdministrator Manage permission and the dashboard is public or have SharedDashboardsOrMaps View permission and the dashboard is shared with you\n     * \n     * @param dashboardId Specific dashboard\n     * @param body Request object\n     */\n    public copyDashboardWithHttpInfo(dashboardId: number, body?: DashboardCopy, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<DashboardResponse>> {\n        const path = this.basePath + '/api/v3/dashboard/${dashboardId}/copy'\n                    .replace('${' + 'dashboardId' + '}', String(dashboardId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'dashboardId' is not null or undefined\n        if (dashboardId === null || dashboardId === undefined) {\n            throw new Error('Required parameter dashboardId was null or undefined when calling copyDashboard.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<DashboardResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Creates a dashboard\n     * \n     * @param body \n     */\n    public createDashboardWithHttpInfo(body?: DashboardCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<DashboardResponse>> {\n        const path = this.basePath + '/api/v3/dashboard';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<DashboardResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Update the visibility of a dashboard for the current user This must be a dashboard you can see Which means you must have created the dashboard or have DashboardAdministrator Manage permission and the dashboard is shared at all or have DashboardAdministrator Manage permission and the dashboard is public or have SharedDashboardsOrMaps View permission and the dashboard is shared with you\n     * \n     * @param dashboardId Specific dashboard\n     * @param body Set Visibility\n     */\n    public dashboardActionVisibleWithHttpInfo(dashboardId: number, body?: ToggleVisible, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<DashboardResponse>> {\n        const path = this.basePath + '/api/v3/dashboard/${dashboardId}/visible'\n                    .replace('${' + 'dashboardId' + '}', String(dashboardId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'dashboardId' is not null or undefined\n        if (dashboardId === null || dashboardId === undefined) {\n            throw new Error('Required parameter dashboardId was null or undefined when calling dashboardActionVisible.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<DashboardResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Delete a dashboard To delete a dashboard you must have created it or have DashboardAdministrator Manage permission and the dashboard is shared at all or have DashboardAdministrator Manage permission and the dashboard is public\n     * \n     * @param dashboardId Specific dashboard\n     */\n    public deleteDashboardWithHttpInfo(dashboardId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/dashboard/${dashboardId}'\n                    .replace('${' + 'dashboardId' + '}', String(dashboardId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'dashboardId' is not null or undefined\n        if (dashboardId === null || dashboardId === undefined) {\n            throw new Error('Required parameter dashboardId was null or undefined when calling deleteDashboard.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Edit a dashboard To edit a dashboard you must have created the dashboard or have DashboardAdministrator Manage permission and the dashboard is shared at all or have DashboardAdministrator Manage permission and the dashboard is public or have SharedDashboardsOrMaps Edit permission and the dashboard is shared with you\n     * \n     * @param dashboardId \n     * @param body \n     */\n    public editDashboardWithHttpInfo(dashboardId: number, body?: DashboardEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<DashboardResponse>> {\n        const path = this.basePath + '/api/v3/dashboard/${dashboardId}'\n                    .replace('${' + 'dashboardId' + '}', String(dashboardId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'dashboardId' is not null or undefined\n        if (dashboardId === null || dashboardId === undefined) {\n            throw new Error('Required parameter dashboardId was null or undefined when calling editDashboard.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<DashboardResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Reorder, edit, and delete specific widgets on a dashboard. To edit dashboard widgets you must have created the dashboard or have DashboardAdministrator Manage permission and the dashboard is shared at all or have DashboardAdministrator Manage permission and the dashboard is public or have SharedDashboardsOrMaps Edit permission and the dashboard is shared with you\n     * \n     * @param dashboardId dashboard\n     * @param body Request object\n     */\n    public editDashboardWidgetsWithHttpInfo(dashboardId: number, body?: Array<WidgetEdit>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<SpecificWidgetResponse>>> {\n        const path = this.basePath + '/api/v202208/dashboard/${dashboardId}/widget'\n                    .replace('${' + 'dashboardId' + '}', String(dashboardId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'dashboardId' is not null or undefined\n        if (dashboardId === null || dashboardId === undefined) {\n            throw new Error('Required parameter dashboardId was null or undefined when calling editDashboardWidgets.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<SpecificWidgetResponse>>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Applies display settings and filters to a map dashboard. These settings are specific to map dashboards, and cannot be applied to standard dashboards. To apply these settings, You must also have either: Created the dashboard or have DashboardAdministrator Manage and the dashboard is shared at all or have DashboardAdministrator Manage permission and the dashboard is public or have SharedDashboardsOrMaps Edit permission and the dashboard is shared with you\n     * \n     * @param dashboardId The identifier of the dashboard to apply these settings to\n     * @param body Object containing the settings to be applied.\n     */\n    public editMapDashboardSettingsWithHttpInfo(dashboardId: number, body?: MapDashboardSettingsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<MapDashboardSettingsResponse>> {\n        const path = this.basePath + '/api/v202208/dashboard/${dashboardId}/mapsetting'\n                    .replace('${' + 'dashboardId' + '}', String(dashboardId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'dashboardId' is not null or undefined\n        if (dashboardId === null || dashboardId === undefined) {\n            throw new Error('Required parameter dashboardId was null or undefined when calling editMapDashboardSettings.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<MapDashboardSettingsResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Gets the current display settings and filters for a specific map dashboard. Cannot be used to retreive settings for a standard dashboard.\n     * \n     * @param dashboardId The identifier of the dashboard to get the settings of\n     */\n    public getMapDashboardSettingsWithHttpInfo(dashboardId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<MapDashboardSettingsResponse>> {\n        const path = this.basePath + '/api/v202208/dashboard/${dashboardId}/mapsetting'\n                    .replace('${' + 'dashboardId' + '}', String(dashboardId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'dashboardId' is not null or undefined\n        if (dashboardId === null || dashboardId === undefined) {\n            throw new Error('Required parameter dashboardId was null or undefined when calling getMapDashboardSettings.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<MapDashboardSettingsResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { FilterResponse } from '../model/filterResponse';\nimport { ReportDistributionCreateRequest } from '../model/reportDistributionCreateRequest';\nimport { ReportDistributionDetailsResponse } from '../model/reportDistributionDetailsResponse';\nimport { ReportDistributionEditRequest } from '../model/reportDistributionEditRequest';\nimport { ReportDistributionLogDetailsResponse } from '../model/reportDistributionLogDetailsResponse';\nimport { ReportDistributionLogResponse } from '../model/reportDistributionLogResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsDistributedReportsSettingsManagespanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Create a Report Distribution\n     * \n     * @param body Data representing the report distribution being created\n     */\n    public createReportDistribution(body?: ReportDistributionCreateRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ReportDistributionDetailsResponse> {\n        return this.createReportDistributionWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ReportDistributionDetailsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes a Report Distribution\n     * \n     * @param reportDistributionId Id of the report distribution to delete\n     */\n    public deleteReportDistribution(reportDistributionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteReportDistributionWithHttpInfo(reportDistributionId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete report distribution logs older than the number of days provided only if the number of logs per distribution is in excess of 100. 100 latest logs per distribution will always be maintained\n     * \n     * @param olderThanDays Defaults to 3\n     */\n    public deleteReportDistributionLogsOlderThan(olderThanDays?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteReportDistributionLogsOlderThanWithHttpInfo(olderThanDays, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit a Report Distribution\n     * \n     * @param reportDistributionId Id of the report distribution to edit\n     * @param body Data representing the report distribution being edited\n     */\n    public editReportDistribution(reportDistributionId: number, body?: ReportDistributionEditRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ReportDistributionDetailsResponse> {\n        return this.editReportDistributionWithHttpInfo(reportDistributionId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ReportDistributionDetailsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Run a report distribution and send the report out immediately This does not affect the current distribution schedule\n     * \n     * @param reportDistributionId Id of the report distribution to run\n     * @param overrideUserIds List of systemuserIds to send the distribution to. If not provided the currently configured recipients will receive the report.  If this is provided it is used in place of the currently configured recipients\n     */\n    public executeReportDistribution(reportDistributionId: number, overrideUserIds?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ReportDistributionLogResponse> {\n        return this.executeReportDistributionWithHttpInfo(reportDistributionId, overrideUserIds, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ReportDistributionLogResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a Report Distribution\n     * \n     * @param reportDistributionId Id of the report distribution to get\n     */\n    public getReportDistribution(reportDistributionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ReportDistributionDetailsResponse> {\n        return this.getReportDistributionWithHttpInfo(reportDistributionId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ReportDistributionDetailsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a Report Distribution Filters\n     * \n     * @param reportDistributionId Id of the report distribution to get\n     */\n    public getReportDistributionFilters(reportDistributionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<FilterResponse>> {\n        return this.getReportDistributionFiltersWithHttpInfo(reportDistributionId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<FilterResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get the details for a report distribution log\n     * \n     * @param reportDistributionLogId Id of the report distribution log to get the details for\n     */\n    public getReportDistributionLogDetails(reportDistributionLogId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ReportDistributionLogDetailsResponse> {\n        return this.getReportDistributionLogDetailsWithHttpInfo(reportDistributionLogId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ReportDistributionLogDetailsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a list of report distribution logs\n     * \n     * @param includeInProgress Option to include in progress distributions.  False by default\n     */\n    public getReportDistributionLogs(includeInProgress?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<ReportDistributionLogResponse>> {\n        return this.getReportDistributionLogsWithHttpInfo(includeInProgress, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<ReportDistributionLogResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get all Report Distributions\n     * \n     * @param filter \n     */\n    public getReportDistributions(filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<ReportDistributionDetailsResponse>> {\n        return this.getReportDistributionsWithHttpInfo(filter, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<ReportDistributionDetailsResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Create a Report Distribution\n     * \n     * @param body Data representing the report distribution being created\n     */\n    public createReportDistributionWithHttpInfo(body?: ReportDistributionCreateRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ReportDistributionDetailsResponse>> {\n        const path = this.basePath + '/api/v202106/reportdistribution';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ReportDistributionDetailsResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Deletes a Report Distribution\n     * \n     * @param reportDistributionId Id of the report distribution to delete\n     */\n    public deleteReportDistributionWithHttpInfo(reportDistributionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202106/reportdistribution/${reportDistributionId}'\n                    .replace('${' + 'reportDistributionId' + '}', String(reportDistributionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'reportDistributionId' is not null or undefined\n        if (reportDistributionId === null || reportDistributionId === undefined) {\n            throw new Error('Required parameter reportDistributionId was null or undefined when calling deleteReportDistribution.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Delete report distribution logs older than the number of days provided only if the number of logs per distribution is in excess of 100. 100 latest logs per distribution will always be maintained\n     * \n     * @param olderThanDays Defaults to 3\n     */\n    public deleteReportDistributionLogsOlderThanWithHttpInfo(olderThanDays?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202106/reportdistribution/log';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (olderThanDays !== undefined) {\n            queryParameters = queryParameters.set('olderThanDays', <any>olderThanDays);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Edit a Report Distribution\n     * \n     * @param reportDistributionId Id of the report distribution to edit\n     * @param body Data representing the report distribution being edited\n     */\n    public editReportDistributionWithHttpInfo(reportDistributionId: number, body?: ReportDistributionEditRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ReportDistributionDetailsResponse>> {\n        const path = this.basePath + '/api/v202106/reportdistribution/${reportDistributionId}'\n                    .replace('${' + 'reportDistributionId' + '}', String(reportDistributionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'reportDistributionId' is not null or undefined\n        if (reportDistributionId === null || reportDistributionId === undefined) {\n            throw new Error('Required parameter reportDistributionId was null or undefined when calling editReportDistribution.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ReportDistributionDetailsResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Run a report distribution and send the report out immediately This does not affect the current distribution schedule\n     * \n     * @param reportDistributionId Id of the report distribution to run\n     * @param overrideUserIds List of systemuserIds to send the distribution to. If not provided the currently configured recipients will receive the report.  If this is provided it is used in place of the currently configured recipients\n     */\n    public executeReportDistributionWithHttpInfo(reportDistributionId: number, overrideUserIds?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ReportDistributionLogResponse>> {\n        const path = this.basePath + '/api/v202106/reportdistribution/${reportDistributionId}/exec'\n                    .replace('${' + 'reportDistributionId' + '}', String(reportDistributionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'reportDistributionId' is not null or undefined\n        if (reportDistributionId === null || reportDistributionId === undefined) {\n            throw new Error('Required parameter reportDistributionId was null or undefined when calling executeReportDistribution.');\n        }\n        if (overrideUserIds) {\n            overrideUserIds.forEach((element) => {\n                queryParameters = queryParameters.append('overrideUserIds', <any>element);\n            })\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ReportDistributionLogResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Get a Report Distribution\n     * \n     * @param reportDistributionId Id of the report distribution to get\n     */\n    public getReportDistributionWithHttpInfo(reportDistributionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ReportDistributionDetailsResponse>> {\n        const path = this.basePath + '/api/v202106/reportdistribution/${reportDistributionId}'\n                    .replace('${' + 'reportDistributionId' + '}', String(reportDistributionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'reportDistributionId' is not null or undefined\n        if (reportDistributionId === null || reportDistributionId === undefined) {\n            throw new Error('Required parameter reportDistributionId was null or undefined when calling getReportDistribution.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ReportDistributionDetailsResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a Report Distribution Filters\n     * \n     * @param reportDistributionId Id of the report distribution to get\n     */\n    public getReportDistributionFiltersWithHttpInfo(reportDistributionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<FilterResponse>>> {\n        const path = this.basePath + '/api/v202106/reportdistribution/${reportDistributionId}/filter'\n                    .replace('${' + 'reportDistributionId' + '}', String(reportDistributionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'reportDistributionId' is not null or undefined\n        if (reportDistributionId === null || reportDistributionId === undefined) {\n            throw new Error('Required parameter reportDistributionId was null or undefined when calling getReportDistributionFilters.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<FilterResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get the details for a report distribution log\n     * \n     * @param reportDistributionLogId Id of the report distribution log to get the details for\n     */\n    public getReportDistributionLogDetailsWithHttpInfo(reportDistributionLogId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ReportDistributionLogDetailsResponse>> {\n        const path = this.basePath + '/api/v202106/reportdistribution/log/${reportDistributionLogId}/detail'\n                    .replace('${' + 'reportDistributionLogId' + '}', String(reportDistributionLogId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'reportDistributionLogId' is not null or undefined\n        if (reportDistributionLogId === null || reportDistributionLogId === undefined) {\n            throw new Error('Required parameter reportDistributionLogId was null or undefined when calling getReportDistributionLogDetails.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ReportDistributionLogDetailsResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a list of report distribution logs\n     * \n     * @param includeInProgress Option to include in progress distributions.  False by default\n     */\n    public getReportDistributionLogsWithHttpInfo(includeInProgress?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<ReportDistributionLogResponse>>> {\n        const path = this.basePath + '/api/v202106/reportdistribution/log';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (includeInProgress !== undefined) {\n            queryParameters = queryParameters.set('includeInProgress', <any>includeInProgress);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<ReportDistributionLogResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get all Report Distributions\n     * \n     * @param filter \n     */\n    public getReportDistributionsWithHttpInfo(filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<ReportDistributionDetailsResponse>>> {\n        const path = this.basePath + '/api/v202106/reportdistribution';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<ReportDistributionDetailsResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { AccountConnectionStatusResponse } from '../model/accountConnectionStatusResponse';\nimport { EnergyStarSettingsRequest } from '../model/energyStarSettingsRequest';\nimport { EnergyStarSettingsResponse } from '../model/energyStarSettingsResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsENERGYSTARSubmissionsManagespanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Edit settings for ENERGY STAR submissions\n     * \n     * @param body ENERGY STAR settings\n     */\n    public editEnergyStarSettings(body?: EnergyStarSettingsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EnergyStarSettingsResponse> {\n        return this.editEnergyStarSettingsWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EnergyStarSettingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get the connection status for a Portfolio Manager account and database\n     * \n     * @param pmUserName User name used to log in to Portfolio Manager\n     */\n    public getPMConnectionStatus(pmUserName?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<AccountConnectionStatusResponse> {\n        return this.getPMConnectionStatusWithHttpInfo(pmUserName, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<AccountConnectionStatusResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Unlink owner from portfolio manager account\n     * \n     * @param deleteData If true, delete EnergyStar metrics and score. False by default\n     */\n    public unlinkOwnerFromPortfolioManager(deleteData?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.unlinkOwnerFromPortfolioManagerWithHttpInfo(deleteData, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Edit settings for ENERGY STAR submissions\n     * \n     * @param body ENERGY STAR settings\n     */\n    public editEnergyStarSettingsWithHttpInfo(body?: EnergyStarSettingsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EnergyStarSettingsResponse>> {\n        const path = this.basePath + '/api/v202110/energyStar/setting';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EnergyStarSettingsResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Get the connection status for a Portfolio Manager account and database\n     * \n     * @param pmUserName User name used to log in to Portfolio Manager\n     */\n    public getPMConnectionStatusWithHttpInfo(pmUserName?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<AccountConnectionStatusResponse>> {\n        const path = this.basePath + '/api/v202110/energyStar/connectionstatus';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (pmUserName !== undefined) {\n            queryParameters = queryParameters.set('pmUserName', <any>pmUserName);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<AccountConnectionStatusResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Unlink owner from portfolio manager account\n     * \n     * @param deleteData If true, delete EnergyStar metrics and score. False by default\n     */\n    public unlinkOwnerFromPortfolioManagerWithHttpInfo(deleteData?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202110/energyStar/unlink';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (deleteData !== undefined) {\n            queryParameters = queryParameters.set('deleteData', <any>deleteData);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { EnergyStarPlaceMetricsRequest } from '../model/energyStarPlaceMetricsRequest';\nimport { EnergyStarPlaceSubmissionStatusResponse } from '../model/energyStarPlaceSubmissionStatusResponse';\nimport { EnergyStarSubmissionRequest } from '../model/energyStarSubmissionRequest';\nimport { EnergyStarTaskResponse } from '../model/energyStarTaskResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsENERGYSTARSubmissionsRunspanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Automatically submit billing data to ENERGY STAR By default calendarized bill data for a 13-month period (excludes current and last month) in the \\&quot;Ready\\&quot; state for all buildings setup to automatically submit to ENERGY STAR will be submitted If 13 months is not preferred, set up the owner&#39;s systemdata key called \\&quot;EnergyStarAutoSubmitNumOfMonths\\&quot; with an integer value representing the preferred number of months  For example - Today is 25th Nov 2021 - all calendarized data for Sep 2020 through Sep 2021 will be submitted The buildings submitted will be within the user&#39;s topmost place No data prior to the earliest period to submit set up in ENERGY STAR settings will ever be submitted\n     * \n     */\n    public autoSubmitToEnergyStar(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EnergyStarTaskResponse> {\n        return this.autoSubmitToEnergyStarWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EnergyStarTaskResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Initiate (create) a submission of place data to ENERGY STAR\n     * \n     * @param body \n     */\n    public createEnergyStarSubmission(body?: EnergyStarSubmissionRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EnergyStarTaskResponse> {\n        return this.createEnergyStarSubmissionWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EnergyStarTaskResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get the submission status for places by submission period.  Places that do not match the filter criteria will not be returned.  NOTE: Deleting/voiding bills that have already been submitted will not cause submission status to change from \\&quot;submitted\\&quot;.\n     * Returned submission status:     Submitted  - submission has been made for this place and submission period and no bills have been created or modified since the last submission     No Data    - no submission has been made for this place and submission period and current submission period has no billing data     Incomplete - no submission has been made for this place and submission period and current billing data is incomplete (some meters may not have data or some days in submission period may not have data)     Ready      - no submission has been made for this place and submission period and current billing data is complete (every meter has data for every day of this period), or submission has been made but billing data has been added or modified since the last submission\n     * @param submissionBeginPeriod The beginning submission period to select\n     * @param submissionEndPeriod The ending submission period to select; set equal to beginning submission period get one period\n     * @param filter API filter string containing conditions\n     */\n    public getEnergyStarSubmissionStatusList(submissionBeginPeriod: number, submissionEndPeriod: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<EnergyStarPlaceSubmissionStatusResponse>> {\n        return this.getEnergyStarSubmissionStatusListWithHttpInfo(submissionBeginPeriod, submissionEndPeriod, filter, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<EnergyStarPlaceSubmissionStatusResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get an ENERGY STAR task with its details\n     * \n     * @param energyStarTaskId \n     */\n    public getEnergyStarTask(energyStarTaskId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EnergyStarTaskResponse> {\n        return this.getEnergyStarTaskWithHttpInfo(energyStarTaskId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EnergyStarTaskResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a list of ENERGY STAR tasks with their details\n     * \n     * @param filter Filters to apply\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getEnergyStarTasks(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<EnergyStarTaskResponse>> {\n        return this.getEnergyStarTasksWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<EnergyStarTaskResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Update ENERGY STAR metrics for the places matching the request criteria.\n     * \n     * @param body Periods and list of place identifiers for which to update metrics\n     */\n    public updateEnergyStarMetrics(body?: EnergyStarPlaceMetricsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EnergyStarTaskResponse> {\n        return this.updateEnergyStarMetricsWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EnergyStarTaskResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Automatically submit billing data to ENERGY STAR By default calendarized bill data for a 13-month period (excludes current and last month) in the \\&quot;Ready\\&quot; state for all buildings setup to automatically submit to ENERGY STAR will be submitted If 13 months is not preferred, set up the owner&#39;s systemdata key called \\&quot;EnergyStarAutoSubmitNumOfMonths\\&quot; with an integer value representing the preferred number of months  For example - Today is 25th Nov 2021 - all calendarized data for Sep 2020 through Sep 2021 will be submitted The buildings submitted will be within the user&#39;s topmost place No data prior to the earliest period to submit set up in ENERGY STAR settings will ever be submitted\n     * \n     */\n    public autoSubmitToEnergyStarWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EnergyStarTaskResponse>> {\n        const path = this.basePath + '/api/v202110/energyStar/autosubmit';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EnergyStarTaskResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Initiate (create) a submission of place data to ENERGY STAR\n     * \n     * @param body \n     */\n    public createEnergyStarSubmissionWithHttpInfo(body?: EnergyStarSubmissionRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EnergyStarTaskResponse>> {\n        const path = this.basePath + '/api/v3/energyStar/submit';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EnergyStarTaskResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Get the submission status for places by submission period.  Places that do not match the filter criteria will not be returned.  NOTE: Deleting/voiding bills that have already been submitted will not cause submission status to change from \\&quot;submitted\\&quot;.\n     * Returned submission status:     Submitted  - submission has been made for this place and submission period and no bills have been created or modified since the last submission     No Data    - no submission has been made for this place and submission period and current submission period has no billing data     Incomplete - no submission has been made for this place and submission period and current billing data is incomplete (some meters may not have data or some days in submission period may not have data)     Ready      - no submission has been made for this place and submission period and current billing data is complete (every meter has data for every day of this period), or submission has been made but billing data has been added or modified since the last submission\n     * @param submissionBeginPeriod The beginning submission period to select\n     * @param submissionEndPeriod The ending submission period to select; set equal to beginning submission period get one period\n     * @param filter API filter string containing conditions\n     */\n    public getEnergyStarSubmissionStatusListWithHttpInfo(submissionBeginPeriod: number, submissionEndPeriod: number, filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<EnergyStarPlaceSubmissionStatusResponse>>> {\n        const path = this.basePath + '/api/v3/energyStar/submissionStatus';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'submissionBeginPeriod' is not null or undefined\n        if (submissionBeginPeriod === null || submissionBeginPeriod === undefined) {\n            throw new Error('Required parameter submissionBeginPeriod was null or undefined when calling getEnergyStarSubmissionStatusList.');\n        }\n        // verify required parameter 'submissionEndPeriod' is not null or undefined\n        if (submissionEndPeriod === null || submissionEndPeriod === undefined) {\n            throw new Error('Required parameter submissionEndPeriod was null or undefined when calling getEnergyStarSubmissionStatusList.');\n        }\n        if (submissionBeginPeriod !== undefined) {\n            queryParameters = queryParameters.set('submissionBeginPeriod', <any>submissionBeginPeriod);\n        }\n\n        if (submissionEndPeriod !== undefined) {\n            queryParameters = queryParameters.set('submissionEndPeriod', <any>submissionEndPeriod);\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<EnergyStarPlaceSubmissionStatusResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get an ENERGY STAR task with its details\n     * \n     * @param energyStarTaskId \n     */\n    public getEnergyStarTaskWithHttpInfo(energyStarTaskId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EnergyStarTaskResponse>> {\n        const path = this.basePath + '/api/v3/energyStar/task/${energyStarTaskId}'\n                    .replace('${' + 'energyStarTaskId' + '}', String(energyStarTaskId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'energyStarTaskId' is not null or undefined\n        if (energyStarTaskId === null || energyStarTaskId === undefined) {\n            throw new Error('Required parameter energyStarTaskId was null or undefined when calling getEnergyStarTask.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EnergyStarTaskResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a list of ENERGY STAR tasks with their details\n     * \n     * @param filter Filters to apply\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getEnergyStarTasksWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<EnergyStarTaskResponse>>> {\n        const path = this.basePath + '/api/v3/energyStar/task';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<EnergyStarTaskResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Update ENERGY STAR metrics for the places matching the request criteria.\n     * \n     * @param body Periods and list of place identifiers for which to update metrics\n     */\n    public updateEnergyStarMetricsWithHttpInfo(body?: EnergyStarPlaceMetricsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EnergyStarTaskResponse>> {\n        const path = this.basePath + '/api/v3/energyStar/metrics';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EnergyStarTaskResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { EmissionSourceCreate } from '../model/emissionSourceCreate';\nimport { EmissionSourceMultiFactorCreate } from '../model/emissionSourceMultiFactorCreate';\nimport { EmissionSourceMultiFactorResponse } from '../model/emissionSourceMultiFactorResponse';\nimport { EmissionSourceResponse } from '../model/emissionSourceResponse';\nimport { MeterActionCreateEmissionSource } from '../model/meterActionCreateEmissionSource';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsEmissionsSourcesCreatespanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Creates an emissions source\n     * \n     * @param body Data representing the emission source being created\n     */\n    public createEmissionSource(body?: EmissionSourceCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EmissionSourceResponse> {\n        return this.createEmissionSourceWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EmissionSourceResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Create emission sources for existing meters.\n     * \n     * @param body The ids of the meters for which to create emission sources\n     */\n    public createEmissionSourceForMeter(body?: MeterActionCreateEmissionSource, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.createEmissionSourceForMeterWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Creates an emission source\n     * \n     * @param body Data representing the emission source being created\n     */\n    public createEmissionSourceWithMultiFactors(body?: EmissionSourceMultiFactorCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EmissionSourceMultiFactorResponse> {\n        return this.createEmissionSourceWithMultiFactorsWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EmissionSourceMultiFactorResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Creates an emissions source\n     * \n     * @param body Data representing the emission source being created\n     */\n    public createEmissionSourceWithHttpInfo(body?: EmissionSourceCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EmissionSourceResponse>> {\n        const path = this.basePath + '/api/v202306/emissionSource';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EmissionSourceResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Create emission sources for existing meters.\n     * \n     * @param body The ids of the meters for which to create emission sources\n     */\n    public createEmissionSourceForMeterWithHttpInfo(body?: MeterActionCreateEmissionSource, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202502/meter/emissionsource';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Creates an emission source\n     * \n     * @param body Data representing the emission source being created\n     */\n    public createEmissionSourceWithMultiFactorsWithHttpInfo(body?: EmissionSourceMultiFactorCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EmissionSourceMultiFactorResponse>> {\n        const path = this.basePath + '/api/v202411/emissionSource';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EmissionSourceMultiFactorResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsEmissionsSourcesDeletespanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Deletes an emissions source\n     * \n     * @param emissionSourceId The identifier for the emission source being deleted\n     * @param deleteRecords Should this cascade to delete any records associated with this emissions source\n     */\n    public deleteEmissionSource(emissionSourceId: number, deleteRecords?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteEmissionSourceWithHttpInfo(emissionSourceId, deleteRecords, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Deletes an emissions source\n     * \n     * @param emissionSourceId The identifier for the emission source being deleted\n     * @param deleteRecords Should this cascade to delete any records associated with this emissions source\n     */\n    public deleteEmissionSourceWithHttpInfo(emissionSourceId: number, deleteRecords?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202306/emissionSource/${emissionSourceId}'\n                    .replace('${' + 'emissionSourceId' + '}', String(emissionSourceId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'emissionSourceId' is not null or undefined\n        if (emissionSourceId === null || emissionSourceId === undefined) {\n            throw new Error('Required parameter emissionSourceId was null or undefined when calling deleteEmissionSource.');\n        }\n        if (deleteRecords !== undefined) {\n            queryParameters = queryParameters.set('deleteRecords', <any>deleteRecords);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { EmissionSourceEdit } from '../model/emissionSourceEdit';\nimport { EmissionSourceFactorCategoryBulkUpdate } from '../model/emissionSourceFactorCategoryBulkUpdate';\nimport { EmissionSourceMultiFactorEdit } from '../model/emissionSourceMultiFactorEdit';\nimport { EmissionSourceMultiFactorResponse } from '../model/emissionSourceMultiFactorResponse';\nimport { EmissionSourceResponse } from '../model/emissionSourceResponse';\nimport { MeterLink } from '../model/meterLink';\nimport { MeterLinkRequest } from '../model/meterLinkRequest';\nimport { OkObjectResult } from '../model/okObjectResult';\nimport { UDFFieldChild } from '../model/uDFFieldChild';\nimport { UDFValue } from '../model/uDFValue';\nimport { UpdateResult } from '../model/updateResult';\nimport { UpdateSkippedResult } from '../model/updateSkippedResult';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsEmissionsSourcesEditspanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Edits an emissions source\n     * \n     * @param emissionSourceId The identifier for the emission source being edited\n     * @param body Data representing the emission source being edited\n     */\n    public editEmissionSource(emissionSourceId: number, body?: EmissionSourceEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EmissionSourceResponse> {\n        return this.editEmissionSourceWithHttpInfo(emissionSourceId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EmissionSourceResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit the custom field values on a emissions source\n     * \n     * @param emissionSourceId The id of the emissions source\n     * @param body The list of udf values being edited\n     */\n    public editEmissionSourceCustomFields(emissionSourceId: number, body?: Array<UDFValue>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<UDFFieldChild>> {\n        return this.editEmissionSourceCustomFieldsWithHttpInfo(emissionSourceId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<UDFFieldChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Assigns the specified scope category and factor pairings to the specified emission sources. If one or more of the factors provided cannot be applied to the emission source, that emission source will be skipped.\n     * \n     * @param body \n     */\n    public editEmissionSourceFactorCategoriesBulk(body?: EmissionSourceFactorCategoryBulkUpdate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateSkippedResult> {\n        return this.editEmissionSourceFactorCategoriesBulkWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateSkippedResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits an emission source\n     * \n     * @param emissionSourceId The identifier for the emission source being edited\n     * @param body Data representing the emission source being edited\n     */\n    public editEmissionSourceWithMultiFactors(emissionSourceId: number, body?: EmissionSourceMultiFactorEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EmissionSourceMultiFactorResponse> {\n        return this.editEmissionSourceWithMultiFactorsWithHttpInfo(emissionSourceId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EmissionSourceMultiFactorResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit meter data in an Emission Source\n     * \n     * @param emissionSourceId The Emission Source identifier\n     * @param body Meter data to assign to the Emission Source\n     */\n    public editMeterLink(emissionSourceId: number, body?: MeterLinkRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<MeterLink> {\n        return this.editMeterLinkWithHttpInfo(emissionSourceId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<MeterLink>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * \n     * \n     * @param parentCollectionId \n     * @param body \n     */\n    public moveEmissionSources(parentCollectionId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.moveEmissionSourcesWithHttpInfo(parentCollectionId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Resets the scope category and factor pairings of the specified emission sources to their commodity default. If no default exists for an emission source&#39;s commodity, that emission source will be skipped.\n     * \n     * @param body \n     */\n    public resetEmissionSourceFactorCategoriesBulk(body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateSkippedResult> {\n        return this.resetEmissionSourceFactorCategoriesBulkWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateSkippedResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Edits an emissions source\n     * \n     * @param emissionSourceId The identifier for the emission source being edited\n     * @param body Data representing the emission source being edited\n     */\n    public editEmissionSourceWithHttpInfo(emissionSourceId: number, body?: EmissionSourceEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EmissionSourceResponse>> {\n        const path = this.basePath + '/api/v202306/emissionSource/${emissionSourceId}'\n                    .replace('${' + 'emissionSourceId' + '}', String(emissionSourceId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'emissionSourceId' is not null or undefined\n        if (emissionSourceId === null || emissionSourceId === undefined) {\n            throw new Error('Required parameter emissionSourceId was null or undefined when calling editEmissionSource.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EmissionSourceResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edit the custom field values on a emissions source\n     * \n     * @param emissionSourceId The id of the emissions source\n     * @param body The list of udf values being edited\n     */\n    public editEmissionSourceCustomFieldsWithHttpInfo(emissionSourceId: number, body?: Array<UDFValue>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<UDFFieldChild>>> {\n        const path = this.basePath + '/api/v202501/emissionSource/${emissionSourceId}/udf'\n                    .replace('${' + 'emissionSourceId' + '}', String(emissionSourceId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'emissionSourceId' is not null or undefined\n        if (emissionSourceId === null || emissionSourceId === undefined) {\n            throw new Error('Required parameter emissionSourceId was null or undefined when calling editEmissionSourceCustomFields.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<UDFFieldChild>>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Assigns the specified scope category and factor pairings to the specified emission sources. If one or more of the factors provided cannot be applied to the emission source, that emission source will be skipped.\n     * \n     * @param body \n     */\n    public editEmissionSourceFactorCategoriesBulkWithHttpInfo(body?: EmissionSourceFactorCategoryBulkUpdate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateSkippedResult>> {\n        const path = this.basePath + '/api/v202501/emissionSource/factorCategory/update';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateSkippedResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edits an emission source\n     * \n     * @param emissionSourceId The identifier for the emission source being edited\n     * @param body Data representing the emission source being edited\n     */\n    public editEmissionSourceWithMultiFactorsWithHttpInfo(emissionSourceId: number, body?: EmissionSourceMultiFactorEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EmissionSourceMultiFactorResponse>> {\n        const path = this.basePath + '/api/v202411/emissionSource/${emissionSourceId}'\n                    .replace('${' + 'emissionSourceId' + '}', String(emissionSourceId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'emissionSourceId' is not null or undefined\n        if (emissionSourceId === null || emissionSourceId === undefined) {\n            throw new Error('Required parameter emissionSourceId was null or undefined when calling editEmissionSourceWithMultiFactors.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EmissionSourceMultiFactorResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edit meter data in an Emission Source\n     * \n     * @param emissionSourceId The Emission Source identifier\n     * @param body Meter data to assign to the Emission Source\n     */\n    public editMeterLinkWithHttpInfo(emissionSourceId: number, body?: MeterLinkRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<MeterLink>> {\n        const path = this.basePath + '/api/v202307/emissionSource/${emissionSourceId}/meter'\n                    .replace('${' + 'emissionSourceId' + '}', String(emissionSourceId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'emissionSourceId' is not null or undefined\n        if (emissionSourceId === null || emissionSourceId === undefined) {\n            throw new Error('Required parameter emissionSourceId was null or undefined when calling editMeterLink.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<MeterLink>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * \n     * \n     * @param parentCollectionId \n     * @param body \n     */\n    public moveEmissionSourcesWithHttpInfo(parentCollectionId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v202309/parentCollection/${parentCollectionId}/emissionSource'\n                    .replace('${' + 'parentCollectionId' + '}', String(parentCollectionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'parentCollectionId' is not null or undefined\n        if (parentCollectionId === null || parentCollectionId === undefined) {\n            throw new Error('Required parameter parentCollectionId was null or undefined when calling moveEmissionSources.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Resets the scope category and factor pairings of the specified emission sources to their commodity default. If no default exists for an emission source&#39;s commodity, that emission source will be skipped.\n     * \n     * @param body \n     */\n    public resetEmissionSourceFactorCategoriesBulkWithHttpInfo(body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateSkippedResult>> {\n        const path = this.basePath + '/api/v202501/emissionSource/factorCategory/reset';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateSkippedResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { EmissionSourceMultiFactorResponse } from '../model/emissionSourceMultiFactorResponse';\nimport { EmissionSourceResponse } from '../model/emissionSourceResponse';\nimport { UDFFieldChild } from '../model/uDFFieldChild';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsEmissionsSourcesViewspanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Download file for a emissions source custom field\n     * \n     * @param emissionSourceId The id of the emissions source\n     * @param udfId The id of the custom field\n     */\n    public downloadEmissionSourceCustomFields(emissionSourceId: number, udfId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.downloadEmissionSourceCustomFieldsWithHttpInfo(emissionSourceId, udfId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves the emissions source by ID\n     * \n     * @param emissionSourceId The identifier for the emission source being retrieved\n     */\n    public getEmissionSource(emissionSourceId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EmissionSourceResponse> {\n        return this.getEmissionSourceWithHttpInfo(emissionSourceId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EmissionSourceResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get custom field values for an emissions source\n     * \n     * @param emissionSourceId The id of the emissions source\n     */\n    public getEmissionSourceCustomFields(emissionSourceId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<UDFFieldChild>> {\n        return this.getEmissionSourceCustomFieldsWithHttpInfo(emissionSourceId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<UDFFieldChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves an emission source by ID\n     * \n     * @param emissionSourceId The identifier for the emission source being retrieved\n     */\n    public getEmissionSourceWithMultiFactors(emissionSourceId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EmissionSourceMultiFactorResponse> {\n        return this.getEmissionSourceWithMultiFactorsWithHttpInfo(emissionSourceId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EmissionSourceMultiFactorResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all the emissions sources\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getEmissionSources(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<EmissionSourceResponse>> {\n        return this.getEmissionSourcesWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<EmissionSourceResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all emission sources\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getEmissionSourcesWithMultiFactors(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<EmissionSourceMultiFactorResponse>> {\n        return this.getEmissionSourcesWithMultiFactorsWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<EmissionSourceMultiFactorResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Download file for a emissions source custom field\n     * \n     * @param emissionSourceId The id of the emissions source\n     * @param udfId The id of the custom field\n     */\n    public downloadEmissionSourceCustomFieldsWithHttpInfo(emissionSourceId: number, udfId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202501/emissionSource/${emissionSourceId}/udf/${udfId}/download'\n                    .replace('${' + 'emissionSourceId' + '}', String(emissionSourceId))\n                    .replace('${' + 'udfId' + '}', String(udfId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'emissionSourceId' is not null or undefined\n        if (emissionSourceId === null || emissionSourceId === undefined) {\n            throw new Error('Required parameter emissionSourceId was null or undefined when calling downloadEmissionSourceCustomFields.');\n        }\n        // verify required parameter 'udfId' is not null or undefined\n        if (udfId === null || udfId === undefined) {\n            throw new Error('Required parameter udfId was null or undefined when calling downloadEmissionSourceCustomFields.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves the emissions source by ID\n     * \n     * @param emissionSourceId The identifier for the emission source being retrieved\n     */\n    public getEmissionSourceWithHttpInfo(emissionSourceId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EmissionSourceResponse>> {\n        const path = this.basePath + '/api/v202306/emissionSource/${emissionSourceId}'\n                    .replace('${' + 'emissionSourceId' + '}', String(emissionSourceId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'emissionSourceId' is not null or undefined\n        if (emissionSourceId === null || emissionSourceId === undefined) {\n            throw new Error('Required parameter emissionSourceId was null or undefined when calling getEmissionSource.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EmissionSourceResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get custom field values for an emissions source\n     * \n     * @param emissionSourceId The id of the emissions source\n     */\n    public getEmissionSourceCustomFieldsWithHttpInfo(emissionSourceId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<UDFFieldChild>>> {\n        const path = this.basePath + '/api/v202501/emissionSource/${emissionSourceId}/udf'\n                    .replace('${' + 'emissionSourceId' + '}', String(emissionSourceId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'emissionSourceId' is not null or undefined\n        if (emissionSourceId === null || emissionSourceId === undefined) {\n            throw new Error('Required parameter emissionSourceId was null or undefined when calling getEmissionSourceCustomFields.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<UDFFieldChild>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves an emission source by ID\n     * \n     * @param emissionSourceId The identifier for the emission source being retrieved\n     */\n    public getEmissionSourceWithMultiFactorsWithHttpInfo(emissionSourceId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EmissionSourceMultiFactorResponse>> {\n        const path = this.basePath + '/api/v202411/emissionSource/${emissionSourceId}'\n                    .replace('${' + 'emissionSourceId' + '}', String(emissionSourceId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'emissionSourceId' is not null or undefined\n        if (emissionSourceId === null || emissionSourceId === undefined) {\n            throw new Error('Required parameter emissionSourceId was null or undefined when calling getEmissionSourceWithMultiFactors.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EmissionSourceMultiFactorResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all the emissions sources\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getEmissionSourcesWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<EmissionSourceResponse>>> {\n        const path = this.basePath + '/api/v202306/emissionSource';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<EmissionSourceResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all emission sources\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getEmissionSourcesWithMultiFactorsWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<EmissionSourceMultiFactorResponse>>> {\n        const path = this.basePath + '/api/v202411/emissionSource';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<EmissionSourceMultiFactorResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { VemChatCreate } from '../model/vemChatCreate';\nimport { VemChatMessageCreate } from '../model/vemChatMessageCreate';\nimport { VemChatResponse } from '../model/vemChatResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsEnergyManagerModuleViewspanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Create a VEM chat for the user making the request.   It requires the &#39;VirtualEnergyManager&#39; feature flag to be enabled for the user.\n     * \n     * @param body \n     */\n    public createChat(body?: VemChatCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<VemChatResponse> {\n        return this.createChatWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<VemChatResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Creates a new message in the specified chat and streams the response to the client.  Since chat history is persisted, it manages response ID internally. It requires the &#39;VirtualEnergyManager&#39; feature flag to be enabled for the user.\n     * This method processes the user&#39;s message asynchronously and streams the response             directly to the client. The response is sent as plain text with no caching, and the connection is kept alive             during the streaming process.\n     * @param chatId The identifier of the chat where the message will be created.\n     * @param body An object containing the details of the message to be created, including its content.\n     */\n    public createMessage(chatId: number, body?: VemChatMessageCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.createMessageWithHttpInfo(chatId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Create a VEM chat for the user making the request.   It requires the &#39;VirtualEnergyManager&#39; feature flag to be enabled for the user.\n     * \n     * @param body \n     */\n    public createChatWithHttpInfo(body?: VemChatCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<VemChatResponse>> {\n        const path = this.basePath + '/api/v202510/energymanager/chat';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<VemChatResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Creates a new message in the specified chat and streams the response to the client.  Since chat history is persisted, it manages response ID internally. It requires the &#39;VirtualEnergyManager&#39; feature flag to be enabled for the user.\n     * This method processes the user&#39;s message asynchronously and streams the response             directly to the client. The response is sent as plain text with no caching, and the connection is kept alive             during the streaming process.\n     * @param chatId The identifier of the chat where the message will be created.\n     * @param body An object containing the details of the message to be created, including its content.\n     */\n    public createMessageWithHttpInfo(chatId: number, body?: VemChatMessageCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202510/energymanager/chat/${chatId}/message'\n                    .replace('${' + 'chatId' + '}', String(chatId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'chatId' is not null or undefined\n        if (chatId === null || chatId === undefined) {\n            throw new Error('Required parameter chatId was null or undefined when calling createMessage.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Post, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { BillExport } from '../model/billExport';\nimport { BillExportOptions } from '../model/billExportOptions';\nimport { BillUnexport } from '../model/billUnexport';\nimport { BillUnexportOptions } from '../model/billUnexportOptions';\nimport { UpdateResult } from '../model/updateResult';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsExportBillsRunspanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Export all account bills to ap or gl Maximum of 10000 bills can be processed at one time.\n     * \n     * @param accountId The account to export all bills\n     * @param body Bill Export Options\n     */\n    public accountBillListExport(accountId: number, body?: BillExportOptions, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.accountBillListExportWithHttpInfo(accountId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Unexport account bills\n     * \n     * @param accountId The account for which to unexport all bills\n     * @param body Value of \\&quot;ap\\&quot; for A/P unexport, or \\&quot;gl\\&quot; for GL unexport\n     */\n    public accountBillListUnexport(accountId: number, body?: BillUnexportOptions, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.accountBillListUnexportWithHttpInfo(accountId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Export all bills in a list to ap or gl Maximum of 10000 bills can be processed at one time.\n     * \n     * @param listId The list identifier\n     * @param body Bill Export Options\n     */\n    public exportBillList(listId: number, body?: BillExportOptions, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.exportBillListWithHttpInfo(listId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves text of a standard EnergyCAP bill export file for AP, GL and payment purposes. Maximum of 10000 bills can be processed at one time. Only bills with the following conditions are included in the export file:  1) approved bills (if the approval system is enabled in workflow settings) 2) bill is in a closed batch (if after batch or after batch approval is set in the workflow settings) 3) bill is not held for export 4) bill is not void 5) bill is within the user&#39;s topmost setting. 6) bill in not already exported\n     * \n     * @param body \n     */\n    public exportBills(body?: BillExport, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.exportBillsWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Export all meter bills to ap or gl Maximum of 10000 bills can be processed at one time.\n     * \n     * @param meterId The meter to export all bills\n     * @param body Bill Export Options\n     */\n    public meterBillListExport(meterId: number, body?: BillExportOptions, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.meterBillListExportWithHttpInfo(meterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Unexport meter bills\n     * \n     * @param meterId The meter for which to unexport all bills\n     * @param body Value of \\&quot;ap\\&quot; for A/P unexport, or \\&quot;gl\\&quot; for GL unexport\n     */\n    public meterBillListUnexport(meterId: number, body?: BillUnexportOptions, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.meterBillListUnexportWithHttpInfo(meterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Unexport bill list\n     * \n     * @param listId The list identifier\n     * @param body Value of \\&quot;ap\\&quot; for A/P unexport, or \\&quot;gl\\&quot; for GL unexport\n     */\n    public unexportBillList(listId: number, body?: BillUnexportOptions, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.unexportBillListWithHttpInfo(listId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Marks one or more bills as unexported.\n     * \n     * @param body An array of bill ids to be marked as unexported and export mode\n     */\n    public unexportBills(body?: BillUnexport, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.unexportBillsWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Marks one or more bills as unexported. The bills to be unexported are selected based on the guid passed in.  The guid is generated when bills are exported via the bill export end point, and the guid is returned in the header of the response in a field named Ec-Guid.\n     * \n     * @param billExportGuid The identifier for the bills to be unexported\n     */\n    public unexportBillsByGuid(billExportGuid: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.unexportBillsByGuidWithHttpInfo(billExportGuid, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Export all account bills to ap or gl Maximum of 10000 bills can be processed at one time.\n     * \n     * @param accountId The account to export all bills\n     * @param body Bill Export Options\n     */\n    public accountBillListExportWithHttpInfo(accountId: number, body?: BillExportOptions, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/list/bill/export'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling accountBillListExport.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Unexport account bills\n     * \n     * @param accountId The account for which to unexport all bills\n     * @param body Value of \\&quot;ap\\&quot; for A/P unexport, or \\&quot;gl\\&quot; for GL unexport\n     */\n    public accountBillListUnexportWithHttpInfo(accountId: number, body?: BillUnexportOptions, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/list/bill/unexport'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling accountBillListUnexport.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Export all bills in a list to ap or gl Maximum of 10000 bills can be processed at one time.\n     * \n     * @param listId The list identifier\n     * @param body Bill Export Options\n     */\n    public exportBillListWithHttpInfo(listId: number, body?: BillExportOptions, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/list/${listId}/export'\n                    .replace('${' + 'listId' + '}', String(listId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'listId' is not null or undefined\n        if (listId === null || listId === undefined) {\n            throw new Error('Required parameter listId was null or undefined when calling exportBillList.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Retrieves text of a standard EnergyCAP bill export file for AP, GL and payment purposes. Maximum of 10000 bills can be processed at one time. Only bills with the following conditions are included in the export file:  1) approved bills (if the approval system is enabled in workflow settings) 2) bill is in a closed batch (if after batch or after batch approval is set in the workflow settings) 3) bill is not held for export 4) bill is not void 5) bill is within the user&#39;s topmost setting. 6) bill in not already exported\n     * \n     * @param body \n     */\n    public exportBillsWithHttpInfo(body?: BillExport, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/bill/export';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Export all meter bills to ap or gl Maximum of 10000 bills can be processed at one time.\n     * \n     * @param meterId The meter to export all bills\n     * @param body Bill Export Options\n     */\n    public meterBillListExportWithHttpInfo(meterId: number, body?: BillExportOptions, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/list/bill/export'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling meterBillListExport.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Unexport meter bills\n     * \n     * @param meterId The meter for which to unexport all bills\n     * @param body Value of \\&quot;ap\\&quot; for A/P unexport, or \\&quot;gl\\&quot; for GL unexport\n     */\n    public meterBillListUnexportWithHttpInfo(meterId: number, body?: BillUnexportOptions, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/list/bill/unexport'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling meterBillListUnexport.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Unexport bill list\n     * \n     * @param listId The list identifier\n     * @param body Value of \\&quot;ap\\&quot; for A/P unexport, or \\&quot;gl\\&quot; for GL unexport\n     */\n    public unexportBillListWithHttpInfo(listId: number, body?: BillUnexportOptions, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/list/${listId}/unexport'\n                    .replace('${' + 'listId' + '}', String(listId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'listId' is not null or undefined\n        if (listId === null || listId === undefined) {\n            throw new Error('Required parameter listId was null or undefined when calling unexportBillList.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Marks one or more bills as unexported.\n     * \n     * @param body An array of bill ids to be marked as unexported and export mode\n     */\n    public unexportBillsWithHttpInfo(body?: BillUnexport, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/bill/unexport';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Marks one or more bills as unexported. The bills to be unexported are selected based on the guid passed in.  The guid is generated when bills are exported via the bill export end point, and the guid is returned in the header of the response in a field named Ec-Guid.\n     * \n     * @param billExportGuid The identifier for the bills to be unexported\n     */\n    public unexportBillsByGuidWithHttpInfo(billExportGuid: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/bill/unexport/${billExportGuid}'\n                    .replace('${' + 'billExportGuid' + '}', String(billExportGuid));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'billExportGuid' is not null or undefined\n        if (billExportGuid === null || billExportGuid === undefined) {\n            throw new Error('Required parameter billExportGuid was null or undefined when calling unexportBillsByGuid.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { BillActionExportHold } from '../model/billActionExportHold';\nimport { ListActionExportHold } from '../model/listActionExportHold';\nimport { UpdateResult } from '../model/updateResult';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsExportHoldManagespanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Hold/release account bills for export\n     * \n     * @param accountId The account to set the export hold flag on all bills\n     * @param body Boolean representing exportHold flag\n     */\n    public accountBillListExportHold(accountId: number, body?: ListActionExportHold, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.accountBillListExportHoldWithHttpInfo(accountId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Update export hold flag for the given billIDs\n     * \n     * @param body export hold action\n     */\n    public billActionExportHold(body?: BillActionExportHold, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.billActionExportHoldWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Hold/release bill list for export\n     * \n     * @param listId The list identifier\n     * @param body Boolean representing exportHold flag\n     */\n    public exportHoldBillList(listId: number, body?: ListActionExportHold, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.exportHoldBillListWithHttpInfo(listId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Hold/release meter bills for export\n     * \n     * @param meterId The meter to set the export hold flag on all bills\n     * @param body Boolean representing exportHold flag\n     */\n    public meterBillListExportHold(meterId: number, body?: ListActionExportHold, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.meterBillListExportHoldWithHttpInfo(meterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Hold/release account bills for export\n     * \n     * @param accountId The account to set the export hold flag on all bills\n     * @param body Boolean representing exportHold flag\n     */\n    public accountBillListExportHoldWithHttpInfo(accountId: number, body?: ListActionExportHold, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/list/bill/exporthold'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling accountBillListExportHold.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Update export hold flag for the given billIDs\n     * \n     * @param body export hold action\n     */\n    public billActionExportHoldWithHttpInfo(body?: BillActionExportHold, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/bill/exporthold';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Hold/release bill list for export\n     * \n     * @param listId The list identifier\n     * @param body Boolean representing exportHold flag\n     */\n    public exportHoldBillListWithHttpInfo(listId: number, body?: ListActionExportHold, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/list/${listId}/exporthold'\n                    .replace('${' + 'listId' + '}', String(listId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'listId' is not null or undefined\n        if (listId === null || listId === undefined) {\n            throw new Error('Required parameter listId was null or undefined when calling exportHoldBillList.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Hold/release meter bills for export\n     * \n     * @param meterId The meter to set the export hold flag on all bills\n     * @param body Boolean representing exportHold flag\n     */\n    public meterBillListExportHoldWithHttpInfo(meterId: number, body?: ListActionExportHold, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/list/bill/exporthold'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling meterBillListExportHold.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { EnergyProjectCreate } from '../model/energyProjectCreate';\nimport { EnergyProjectResponse } from '../model/energyProjectResponse';\nimport { EnergyProjectType } from '../model/energyProjectType';\nimport { EnergyProjectTypeCreate } from '../model/energyProjectTypeCreate';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsFacilityProjectsCreatespanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Creates an Energy Project\n     * \n     * @param body Data representing the Energy project being created\n     */\n    public createEnergyProject(body?: EnergyProjectCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EnergyProjectResponse> {\n        return this.createEnergyProjectWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EnergyProjectResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Create a energy project type\n     * \n     * @param body \n     */\n    public createEnergyProjectType(body?: EnergyProjectTypeCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EnergyProjectType> {\n        return this.createEnergyProjectTypeWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EnergyProjectType>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Creates an Energy Project\n     * \n     * @param body Data representing the Energy project being created\n     */\n    public createEnergyProjectWithHttpInfo(body?: EnergyProjectCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EnergyProjectResponse>> {\n        const path = this.basePath + '/api/v3/energyproject';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EnergyProjectResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Create a energy project type\n     * \n     * @param body \n     */\n    public createEnergyProjectTypeWithHttpInfo(body?: EnergyProjectTypeCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EnergyProjectType>> {\n        const path = this.basePath + '/api/v3/energyproject/energyprojecttype';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EnergyProjectType>(RequestMethod.Post, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsFacilityProjectsDeletespanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Deletes an Energy Project\n     * \n     * @param projectId The identifier for the energy project being deleted\n     */\n    public deleteEnergyProject(projectId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteEnergyProjectWithHttpInfo(projectId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Deletes an Energy Project\n     * \n     * @param projectId The identifier for the energy project being deleted\n     */\n    public deleteEnergyProjectWithHttpInfo(projectId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/energyproject/${projectId}'\n                    .replace('${' + 'projectId' + '}', String(projectId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'projectId' is not null or undefined\n        if (projectId === null || projectId === undefined) {\n            throw new Error('Required parameter projectId was null or undefined when calling deleteEnergyProject.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { EnergyProjectEdit } from '../model/energyProjectEdit';\nimport { EnergyProjectResponse } from '../model/energyProjectResponse';\nimport { UDFFieldChild } from '../model/uDFFieldChild';\nimport { UDFValue } from '../model/uDFValue';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsFacilityProjectsEditspanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Edits an Energy Project\n     * \n     * @param projectId The identifier for the energy project being edited\n     * @param body \n     */\n    public editEnergyProject(projectId: number, body?: EnergyProjectEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EnergyProjectResponse> {\n        return this.editEnergyProjectWithHttpInfo(projectId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EnergyProjectResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit the custom field values on a energy project\n     * \n     * @param energyProjectId The id of the energy project\n     * @param body The list of udf values being edited\n     */\n    public editEnergyProjectCustomFields(energyProjectId: number, body?: Array<UDFValue>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<UDFFieldChild>> {\n        return this.editEnergyProjectCustomFieldsWithHttpInfo(energyProjectId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<UDFFieldChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Edits an Energy Project\n     * \n     * @param projectId The identifier for the energy project being edited\n     * @param body \n     */\n    public editEnergyProjectWithHttpInfo(projectId: number, body?: EnergyProjectEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EnergyProjectResponse>> {\n        const path = this.basePath + '/api/v3/energyproject/${projectId}'\n                    .replace('${' + 'projectId' + '}', String(projectId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'projectId' is not null or undefined\n        if (projectId === null || projectId === undefined) {\n            throw new Error('Required parameter projectId was null or undefined when calling editEnergyProject.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EnergyProjectResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edit the custom field values on a energy project\n     * \n     * @param energyProjectId The id of the energy project\n     * @param body The list of udf values being edited\n     */\n    public editEnergyProjectCustomFieldsWithHttpInfo(energyProjectId: number, body?: Array<UDFValue>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<UDFFieldChild>>> {\n        const path = this.basePath + '/api/v202501/energyproject/${energyProjectId}/udf'\n                    .replace('${' + 'energyProjectId' + '}', String(energyProjectId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'energyProjectId' is not null or undefined\n        if (energyProjectId === null || energyProjectId === undefined) {\n            throw new Error('Required parameter energyProjectId was null or undefined when calling editEnergyProjectCustomFields.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<UDFFieldChild>>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { AccountAuditEnable } from '../model/accountAuditEnable';\nimport { AccountAuditSettingsRequest } from '../model/accountAuditSettingsRequest';\nimport { AccountAuditSettingsResponse } from '../model/accountAuditSettingsResponse';\nimport { FlagEdit } from '../model/flagEdit';\nimport { FlagIssueEdit } from '../model/flagIssueEdit';\nimport { FlagIssueEditAction } from '../model/flagIssueEditAction';\nimport { FlagIssueListAction } from '../model/flagIssueListAction';\nimport { FlagIssueResponse } from '../model/flagIssueResponse';\nimport { FlagListAction } from '../model/flagListAction';\nimport { FlagResponse } from '../model/flagResponse';\nimport { UpdateResult } from '../model/updateResult';\nimport { UpdatedOnlyResult } from '../model/updatedOnlyResult';\nimport { VendorAuditEnable } from '../model/vendorAuditEnable';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsFlaggedItemsManagespanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Edit flag data for a specified entity\n     * This API supports a wide variety of Flag-related actions. Below are summaries of expected outcomes for possible combinations of property values.    Create Flag(the entity is not yet flagged, therefore there is no \\&quot;modified\\&quot; info)  |        FlagTypeId        |       FlagStatusId       |       CostRecovery       |        Assignees         |         Comment          |    HoldFromExport    |  ReleaseExportHold   |                                                                                                                   Action                                                                                                                    | | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | -------------------- | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | null                     | null                     | null                     | null                     | **non-null**             | **true**             | **true**             | Exception, cannot set both HoldFromExport and ReleaseExportHold at once                                                                                                                                                                     | | null                     | null                     | null                     | null                     | null                     | **non-null**         | **non-null**         | Exception, must have at least one set                                                                                                                                                                                                       | | null                     | null                     | null                     | null                     | null                     | null                 | null                 | Exception, must provided a non-null value for HoldFromExport or ReleaseExportHold                                                                                                                                                           | | null                     | **not null**             | **not null**             | **not null**             | **not null**             | false                | false                | Exception, must have a type                                                                                                                                                                                                                 | | **not null**             | null                     | null                     | null                     | null                     | false                | false                | Flagged, unresolved, specified type                                                                                                                                                                                                         | | **not null**             | **not null**             | null                     | null                     | null                     | false                | false                | Flagged, unresolved(ignoring specified status), specified type                                                                                                                                                                              | | **not null**             | null                     | **not null**             | null                     | null                     | false                | false                | Flagged, unresolved, specified type, cost recovery                                                                                                                                                                                          | | **not null**             | null                     | null                     | **not null**&lt;sup&gt;1&lt;/sup&gt; | null                     | false                | false                | Flagged, unresolved, specified type &lt;sup&gt;1&lt;/sup&gt;If assignees not empty, assigned                                                                                                                                                       | | **not null**             | null                     | null                     | null                     | **not null**             | false                | false                | Flagged, unresolved, specified type, comment                                                                                                                                                                                                | | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;2&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | **true**&lt;sup&gt;1&lt;/sup&gt; | false                | &lt;sup&gt;1&lt;/sup&gt;Flagged, unresolved (ignoring specified status), specified type, cost recovery, comment, held from export &lt;sup&gt;2&lt;/sup&gt;If assignees not empty, assigned, comment                                                            | | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;2&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | false                | **true**&lt;sup&gt;3&lt;/sup&gt; | &lt;sup&gt;1&lt;/sup&gt;Flagged, unresolved (ignoring specified status), specified type, cost recovery, comment &lt;sup&gt;2&lt;/sup&gt;If assignees not empty, assigned, comment &lt;sup&gt;3&lt;/sup&gt;No action; will not release a newly flagged bill for export |  Edit Unresolved Flag (the entity is already flagged)  |        FlagTypeId        |       FlagStatusId       |       CostRecovery       |        Assignees         |         Comment          |    HoldFromExport    | ReleaseExportHold |                                                                       Action                                                                        | | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | -------------------- | ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | | null                     | null                     | null                     | null                     | **non-null**             | **true**             | **true**          | Exception, cannot set both HoldFromExport and ReleaseExportHold at once                                                                             | | null                     | null                     | null                     | null                     | null                     | **non-null**         | **non-null**      | Exception, must have at least one set                                                                                                               | | null                     | null                     | null                     | null                     | null                     | false                | false             | Exception, must provided a non-null value for HoldFromExport or ReleaseExportHold                                                                   | | **system or user type**  | null                     | null                     | null                     | null                     | false                | false             | Flag type updated                                                                                                                                   | | null                     | **resolved**             | null                     | null                     | null                     | false                | false             | Resolved                                                                                                                                            | | null                     | **resolved**             | null                     | null                     | null                     | false                | **true**          | Resolved, released for export                                                                                                                       | | null                     | null                     | **not null**             | null                     | null                     | false                | false             | Updated, cost recovery                                                                                                                              | | null                     | null                     | null                     | **not null**             | null                     | false                | false             | Assigned                                                                                                                                            | | null                     | null                     | null                     | null                     | **not null**             | false                | false             | Updated, comment                                                                                                                                    | | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;3&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;2&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | false                | false             | &lt;sup&gt;1&lt;/sup&gt;Updated, specified type, cost recovery, comment &lt;sup&gt;2&lt;/sup&gt;Assigned, comment &lt;sup&gt;3&lt;/sup&gt;Resolved, comment                   | | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;3&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;2&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | **true**&lt;sup&gt;1&lt;/sup&gt; | false             | &lt;sup&gt;1&lt;/sup&gt;Updated, specified type, cost recovery, comment, held from export &lt;sup&gt;2&lt;/sup&gt;Assigned, comment &lt;sup&gt;3&lt;/sup&gt;Resolved, comment |  Edit Resolved Flag (the entity is already flagged)  |        FlagTypeId        |        FlagStatusId        |       CostRecovery       |        Assignees         |         Comment          |    HoldFromExport    |  ReleaseExportHold   |                                                              Action                                                               | | ------------------------ | -------------------------- | ------------------------ | ------------------------ | ------------------------ | -------------------- | -------------------- | --------------------------------------------------------------------------------------------------------------------------------- | | null                     | null                       | null                     | null                     | **non-null**             | **true**             | **true**             | Exception, cannot set both HoldFromExport and ReleaseExportHold at once                                                           | | null                     | null                       | null                     | null                     | null                     | **non-null**         | **non-null**         | Exception, must have at least one set                                                                                             | | null                     | null                       | null                     | null                     | null                     | false                | false                | Exception, must provided a non-null value for HoldFromExport or ReleaseExportHold                                                 | | **system or user type**  | null                       | null                     | null                     | null                     | false                | false                | Updated, specified type                                                                                                           | | null                     | **non-null**               | null                     | null                     | null                     | false                | false                | Exception; must provide flag type (cannot change flag status of a resolved flag; instead must \\&quot;re-flag\\&quot; it)                       | | null                     | null                       | **not null**             | null                     | null                     | false                | false                | Exception; must provide flag type (cannot change flag status of a resolved flag; instead must \\&quot;re-flag\\&quot; it)                       | | null                     | null                       | null                     | **not null**             | null                     | false                | false                | Exception; must provide flag type (cannot change flag status of a resolved flag; instead must \\&quot;re-flag\\&quot; it)                       | | null                     | null                       | null                     | null                     | **not null**             | false                | false                | Exception; must provide flag type (cannot change flag status of a resolved flag; instead must \\&quot;re-flag\\&quot; it)                       | | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;3&lt;/sup&gt;   | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;2&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | false                | false                | &lt;sup&gt;1&lt;/sup&gt;Updated, specified type, cost recovery, comment &lt;sup&gt;2&lt;/sup&gt;Assigned, comment &lt;sup&gt;3&lt;/sup&gt;Resolved, comment | | **not null**&lt;sup&gt;1&lt;/sup&gt; | **unresolved**&lt;sup&gt;3&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;2&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | **true**&lt;sup&gt;1&lt;/sup&gt; | false                | &lt;sup&gt;1&lt;/sup&gt;Flagged, specified type, cost recovery, comment, no export hold action &lt;sup&gt;2&lt;/sup&gt;Assigned, comment        | | **not null**&lt;sup&gt;1&lt;/sup&gt; | **resolved**&lt;sup&gt;3&lt;/sup&gt;   | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;2&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | false                | **true**&lt;sup&gt;1&lt;/sup&gt; | &lt;sup&gt;1&lt;/sup&gt;Resolved, specified type, cost recovery, comment, no export hold action &lt;sup&gt;2&lt;/sup&gt;Assigned, comment       | | **not null**&lt;sup&gt;1&lt;/sup&gt; | **unresolved**&lt;sup&gt;3&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;2&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | **true**&lt;sup&gt;1&lt;/sup&gt; | false                | &lt;sup&gt;1&lt;/sup&gt;Flagged, specified type, cost recovery, comment, held from export &lt;sup&gt;2&lt;/sup&gt;Assigned, comment             | | **not null**&lt;sup&gt;1&lt;/sup&gt; | **resolved**&lt;sup&gt;3&lt;/sup&gt;   | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;2&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | false                | **true**&lt;sup&gt;1&lt;/sup&gt; | &lt;sup&gt;1&lt;/sup&gt;Resolved, specified type, cost recovery, comment, released from export &lt;sup&gt;2&lt;/sup&gt;Assigned, comment        |\n     * @param entityType The type of entity the flag is being request for. Supported values are: \\&quot;Bill\\&quot;\n     * @param entityId The identifier of the entity\n     * @param body The flag edit request\n     */\n    public editFlag(entityType: string, entityId: number, body?: FlagEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<FlagResponse> {\n        return this.editFlagWithHttpInfo(entityType, entityId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<FlagResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * \n     * \n     * @param entityType The type of entity the flag issues are being request for. Supported values are: \\&quot;Bill\\&quot;\n     * @param entityId The identifier of the entity\n     * @param flagResolveComment Optional comment that will be recorded in the flag event when resolving the issue\n     * @param body The flag issue edit request\n     */\n    public editFlagIssues(entityType: string, entityId: number, flagResolveComment?: string, body?: Array<FlagIssueEdit>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<FlagIssueResponse>> {\n        return this.editFlagIssuesWithHttpInfo(entityType, entityId, flagResolveComment, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<FlagIssueResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Updates flags for a given list of entities. If the entity does not currently have a flag, one will be created.\n     * \n     * @param entityType The type of entity the flag is being request for. Supported values are: \\&quot;Bill\\&quot;\n     * @param body The changes to be made to the flags\n     */\n    public flagAction(entityType: string, body?: FlagListAction, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.flagActionWithHttpInfo(entityType, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Create and/or update flags for all bills in a list\n     * \n     * @param listId Bill list containing a list of bills that will have flags created or updated\n     * @param body DTO containing the new state of the flags on each bill in the list\n     */\n    public flagBillListAction(listId: number, body?: FlagEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.flagBillListActionWithHttpInfo(listId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Updates flag issues for a given list of flag issue ids\n     * \n     * @param body The changes to be made to the flag issues\n     */\n    public flagIssueAction(body?: FlagIssueListAction, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.flagIssueActionWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Update flag issuess for all issues in a list\n     * \n     * @param listId Flag Issue list containing a list of flag issues to be updated\n     * @param body DTO containing the new state of the flag Issue on each flag issue in the list\n     */\n    public flagIssueBillListAction(listId: number, body?: FlagIssueEditAction, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.flagIssueBillListActionWithHttpInfo(listId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Re-run audits on a set of bills Only a subset of audits are run. The audits that run are the ones that are affected by bill history Also the owner audit setting and any account level audit setting overrides will be applied Resolved flag issues and flags could get re-flagged because of this action If the audit setting is set to Flag and Hold, the bill will get Held from export\n     * \n     * @param rerunResolvedIssues When true, resolved issues can be re-flagged. When false, resolved issues are not re-flagged. Defaults to true.\n     * @param body The list of bills to audit\n     */\n    public rerunAudits(rerunResolvedIssues?: boolean, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.rerunAuditsWithHttpInfo(rerunResolvedIssues, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Re-run audits on a set of bills Only a subset of audits are run. The audits that run are the ones that are affected by bill history Also the owner audit setting and any account level audit setting overrides will be applied Resolved flag issues and flags could get re-flagged because of this action If the audit setting is set to Flag and Hold, the bill will get Held from export\n     * \n     * @param body The list of bills to audit\n     */\n    public rerunAudits_1(body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.rerunAudits_1WithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Enable or disable Accounts from audits\n     * \n     * @param body \n     */\n    public setAccountAuditExclusion(body?: AccountAuditEnable, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.setAccountAuditExclusionWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Enable or disable all accounts assigned to a vendor from audits\n     * \n     * @param vendorId The identifier for the vendor to act upon\n     * @param body \n     */\n    public setVendorAccountsAuditExclusion(vendorId: number, body?: VendorAuditEnable, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdatedOnlyResult> {\n        return this.setVendorAccountsAuditExclusionWithHttpInfo(vendorId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdatedOnlyResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Update audit settings for an account.  Every audit must be included but supplying null for its settings will remove them.\n     *  __Setting Status Descriptions:__  | Setting Status | Description | | -------------- | ----------- | | Check          | If this audit fails affected bills are flagged  | | Hold           | If this audit fails affected bills are flagged and held from export  | | Skip           | This audit is skipped  |\n     * @param accountId The account identifier\n     * @param body The new state of the audit settings\n     */\n    public updateAccountAuditSettings(accountId: number, body?: AccountAuditSettingsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<AccountAuditSettingsResponse> {\n        return this.updateAccountAuditSettingsWithHttpInfo(accountId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<AccountAuditSettingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Edit flag data for a specified entity\n     * This API supports a wide variety of Flag-related actions. Below are summaries of expected outcomes for possible combinations of property values.    Create Flag(the entity is not yet flagged, therefore there is no \\&quot;modified\\&quot; info)  |        FlagTypeId        |       FlagStatusId       |       CostRecovery       |        Assignees         |         Comment          |    HoldFromExport    |  ReleaseExportHold   |                                                                                                                   Action                                                                                                                    | | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | -------------------- | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | null                     | null                     | null                     | null                     | **non-null**             | **true**             | **true**             | Exception, cannot set both HoldFromExport and ReleaseExportHold at once                                                                                                                                                                     | | null                     | null                     | null                     | null                     | null                     | **non-null**         | **non-null**         | Exception, must have at least one set                                                                                                                                                                                                       | | null                     | null                     | null                     | null                     | null                     | null                 | null                 | Exception, must provided a non-null value for HoldFromExport or ReleaseExportHold                                                                                                                                                           | | null                     | **not null**             | **not null**             | **not null**             | **not null**             | false                | false                | Exception, must have a type                                                                                                                                                                                                                 | | **not null**             | null                     | null                     | null                     | null                     | false                | false                | Flagged, unresolved, specified type                                                                                                                                                                                                         | | **not null**             | **not null**             | null                     | null                     | null                     | false                | false                | Flagged, unresolved(ignoring specified status), specified type                                                                                                                                                                              | | **not null**             | null                     | **not null**             | null                     | null                     | false                | false                | Flagged, unresolved, specified type, cost recovery                                                                                                                                                                                          | | **not null**             | null                     | null                     | **not null**&lt;sup&gt;1&lt;/sup&gt; | null                     | false                | false                | Flagged, unresolved, specified type &lt;sup&gt;1&lt;/sup&gt;If assignees not empty, assigned                                                                                                                                                       | | **not null**             | null                     | null                     | null                     | **not null**             | false                | false                | Flagged, unresolved, specified type, comment                                                                                                                                                                                                | | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;2&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | **true**&lt;sup&gt;1&lt;/sup&gt; | false                | &lt;sup&gt;1&lt;/sup&gt;Flagged, unresolved (ignoring specified status), specified type, cost recovery, comment, held from export &lt;sup&gt;2&lt;/sup&gt;If assignees not empty, assigned, comment                                                            | | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;2&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | false                | **true**&lt;sup&gt;3&lt;/sup&gt; | &lt;sup&gt;1&lt;/sup&gt;Flagged, unresolved (ignoring specified status), specified type, cost recovery, comment &lt;sup&gt;2&lt;/sup&gt;If assignees not empty, assigned, comment &lt;sup&gt;3&lt;/sup&gt;No action; will not release a newly flagged bill for export |  Edit Unresolved Flag (the entity is already flagged)  |        FlagTypeId        |       FlagStatusId       |       CostRecovery       |        Assignees         |         Comment          |    HoldFromExport    | ReleaseExportHold |                                                                       Action                                                                        | | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | -------------------- | ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | | null                     | null                     | null                     | null                     | **non-null**             | **true**             | **true**          | Exception, cannot set both HoldFromExport and ReleaseExportHold at once                                                                             | | null                     | null                     | null                     | null                     | null                     | **non-null**         | **non-null**      | Exception, must have at least one set                                                                                                               | | null                     | null                     | null                     | null                     | null                     | false                | false             | Exception, must provided a non-null value for HoldFromExport or ReleaseExportHold                                                                   | | **system or user type**  | null                     | null                     | null                     | null                     | false                | false             | Flag type updated                                                                                                                                   | | null                     | **resolved**             | null                     | null                     | null                     | false                | false             | Resolved                                                                                                                                            | | null                     | **resolved**             | null                     | null                     | null                     | false                | **true**          | Resolved, released for export                                                                                                                       | | null                     | null                     | **not null**             | null                     | null                     | false                | false             | Updated, cost recovery                                                                                                                              | | null                     | null                     | null                     | **not null**             | null                     | false                | false             | Assigned                                                                                                                                            | | null                     | null                     | null                     | null                     | **not null**             | false                | false             | Updated, comment                                                                                                                                    | | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;3&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;2&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | false                | false             | &lt;sup&gt;1&lt;/sup&gt;Updated, specified type, cost recovery, comment &lt;sup&gt;2&lt;/sup&gt;Assigned, comment &lt;sup&gt;3&lt;/sup&gt;Resolved, comment                   | | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;3&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;2&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | **true**&lt;sup&gt;1&lt;/sup&gt; | false             | &lt;sup&gt;1&lt;/sup&gt;Updated, specified type, cost recovery, comment, held from export &lt;sup&gt;2&lt;/sup&gt;Assigned, comment &lt;sup&gt;3&lt;/sup&gt;Resolved, comment |  Edit Resolved Flag (the entity is already flagged)  |        FlagTypeId        |        FlagStatusId        |       CostRecovery       |        Assignees         |         Comment          |    HoldFromExport    |  ReleaseExportHold   |                                                              Action                                                               | | ------------------------ | -------------------------- | ------------------------ | ------------------------ | ------------------------ | -------------------- | -------------------- | --------------------------------------------------------------------------------------------------------------------------------- | | null                     | null                       | null                     | null                     | **non-null**             | **true**             | **true**             | Exception, cannot set both HoldFromExport and ReleaseExportHold at once                                                           | | null                     | null                       | null                     | null                     | null                     | **non-null**         | **non-null**         | Exception, must have at least one set                                                                                             | | null                     | null                       | null                     | null                     | null                     | false                | false                | Exception, must provided a non-null value for HoldFromExport or ReleaseExportHold                                                 | | **system or user type**  | null                       | null                     | null                     | null                     | false                | false                | Updated, specified type                                                                                                           | | null                     | **non-null**               | null                     | null                     | null                     | false                | false                | Exception; must provide flag type (cannot change flag status of a resolved flag; instead must \\&quot;re-flag\\&quot; it)                       | | null                     | null                       | **not null**             | null                     | null                     | false                | false                | Exception; must provide flag type (cannot change flag status of a resolved flag; instead must \\&quot;re-flag\\&quot; it)                       | | null                     | null                       | null                     | **not null**             | null                     | false                | false                | Exception; must provide flag type (cannot change flag status of a resolved flag; instead must \\&quot;re-flag\\&quot; it)                       | | null                     | null                       | null                     | null                     | **not null**             | false                | false                | Exception; must provide flag type (cannot change flag status of a resolved flag; instead must \\&quot;re-flag\\&quot; it)                       | | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;3&lt;/sup&gt;   | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;2&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | false                | false                | &lt;sup&gt;1&lt;/sup&gt;Updated, specified type, cost recovery, comment &lt;sup&gt;2&lt;/sup&gt;Assigned, comment &lt;sup&gt;3&lt;/sup&gt;Resolved, comment | | **not null**&lt;sup&gt;1&lt;/sup&gt; | **unresolved**&lt;sup&gt;3&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;2&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | **true**&lt;sup&gt;1&lt;/sup&gt; | false                | &lt;sup&gt;1&lt;/sup&gt;Flagged, specified type, cost recovery, comment, no export hold action &lt;sup&gt;2&lt;/sup&gt;Assigned, comment        | | **not null**&lt;sup&gt;1&lt;/sup&gt; | **resolved**&lt;sup&gt;3&lt;/sup&gt;   | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;2&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | false                | **true**&lt;sup&gt;1&lt;/sup&gt; | &lt;sup&gt;1&lt;/sup&gt;Resolved, specified type, cost recovery, comment, no export hold action &lt;sup&gt;2&lt;/sup&gt;Assigned, comment       | | **not null**&lt;sup&gt;1&lt;/sup&gt; | **unresolved**&lt;sup&gt;3&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;2&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | **true**&lt;sup&gt;1&lt;/sup&gt; | false                | &lt;sup&gt;1&lt;/sup&gt;Flagged, specified type, cost recovery, comment, held from export &lt;sup&gt;2&lt;/sup&gt;Assigned, comment             | | **not null**&lt;sup&gt;1&lt;/sup&gt; | **resolved**&lt;sup&gt;3&lt;/sup&gt;   | **not null**&lt;sup&gt;1&lt;/sup&gt; | **not null**&lt;sup&gt;2&lt;/sup&gt; | **not null**&lt;sup&gt;1&lt;/sup&gt; | false                | **true**&lt;sup&gt;1&lt;/sup&gt; | &lt;sup&gt;1&lt;/sup&gt;Resolved, specified type, cost recovery, comment, released from export &lt;sup&gt;2&lt;/sup&gt;Assigned, comment        |\n     * @param entityType The type of entity the flag is being request for. Supported values are: \\&quot;Bill\\&quot;\n     * @param entityId The identifier of the entity\n     * @param body The flag edit request\n     */\n    public editFlagWithHttpInfo(entityType: string, entityId: number, body?: FlagEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<FlagResponse>> {\n        const path = this.basePath + '/api/v3/flag/${entityType}/${entityId}'\n                    .replace('${' + 'entityType' + '}', String(entityType))\n                    .replace('${' + 'entityId' + '}', String(entityId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'entityType' is not null or undefined\n        if (entityType === null || entityType === undefined) {\n            throw new Error('Required parameter entityType was null or undefined when calling editFlag.');\n        }\n        // verify required parameter 'entityId' is not null or undefined\n        if (entityId === null || entityId === undefined) {\n            throw new Error('Required parameter entityId was null or undefined when calling editFlag.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<FlagResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * \n     * \n     * @param entityType The type of entity the flag issues are being request for. Supported values are: \\&quot;Bill\\&quot;\n     * @param entityId The identifier of the entity\n     * @param flagResolveComment Optional comment that will be recorded in the flag event when resolving the issue\n     * @param body The flag issue edit request\n     */\n    public editFlagIssuesWithHttpInfo(entityType: string, entityId: number, flagResolveComment?: string, body?: Array<FlagIssueEdit>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<FlagIssueResponse>>> {\n        const path = this.basePath + '/api/v202501/flag/flagIssue/${entityType}/${entityId}'\n                    .replace('${' + 'entityType' + '}', String(entityType))\n                    .replace('${' + 'entityId' + '}', String(entityId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'entityType' is not null or undefined\n        if (entityType === null || entityType === undefined) {\n            throw new Error('Required parameter entityType was null or undefined when calling editFlagIssues.');\n        }\n        // verify required parameter 'entityId' is not null or undefined\n        if (entityId === null || entityId === undefined) {\n            throw new Error('Required parameter entityId was null or undefined when calling editFlagIssues.');\n        }\n        if (flagResolveComment !== undefined) {\n            queryParameters = queryParameters.set('flagResolveComment', <any>flagResolveComment);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<FlagIssueResponse>>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Updates flags for a given list of entities. If the entity does not currently have a flag, one will be created.\n     * \n     * @param entityType The type of entity the flag is being request for. Supported values are: \\&quot;Bill\\&quot;\n     * @param body The changes to be made to the flags\n     */\n    public flagActionWithHttpInfo(entityType: string, body?: FlagListAction, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/flag/${entityType}/flagAction'\n                    .replace('${' + 'entityType' + '}', String(entityType));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'entityType' is not null or undefined\n        if (entityType === null || entityType === undefined) {\n            throw new Error('Required parameter entityType was null or undefined when calling flagAction.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Create and/or update flags for all bills in a list\n     * \n     * @param listId Bill list containing a list of bills that will have flags created or updated\n     * @param body DTO containing the new state of the flags on each bill in the list\n     */\n    public flagBillListActionWithHttpInfo(listId: number, body?: FlagEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/list/${listId}/flagAction'\n                    .replace('${' + 'listId' + '}', String(listId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'listId' is not null or undefined\n        if (listId === null || listId === undefined) {\n            throw new Error('Required parameter listId was null or undefined when calling flagBillListAction.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Updates flag issues for a given list of flag issue ids\n     * \n     * @param body The changes to be made to the flag issues\n     */\n    public flagIssueActionWithHttpInfo(body?: FlagIssueListAction, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v202501/flag/flagIssueAction';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Update flag issuess for all issues in a list\n     * \n     * @param listId Flag Issue list containing a list of flag issues to be updated\n     * @param body DTO containing the new state of the flag Issue on each flag issue in the list\n     */\n    public flagIssueBillListActionWithHttpInfo(listId: number, body?: FlagIssueEditAction, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/V202502/list/${listId}/flagIssueAction'\n                    .replace('${' + 'listId' + '}', String(listId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'listId' is not null or undefined\n        if (listId === null || listId === undefined) {\n            throw new Error('Required parameter listId was null or undefined when calling flagIssueBillListAction.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Re-run audits on a set of bills Only a subset of audits are run. The audits that run are the ones that are affected by bill history Also the owner audit setting and any account level audit setting overrides will be applied Resolved flag issues and flags could get re-flagged because of this action If the audit setting is set to Flag and Hold, the bill will get Held from export\n     * \n     * @param rerunResolvedIssues When true, resolved issues can be re-flagged. When false, resolved issues are not re-flagged. Defaults to true.\n     * @param body The list of bills to audit\n     */\n    public rerunAuditsWithHttpInfo(rerunResolvedIssues?: boolean, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202603/audit/rerunAudits';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (rerunResolvedIssues !== undefined) {\n            queryParameters = queryParameters.set('rerunResolvedIssues', <any>rerunResolvedIssues);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Re-run audits on a set of bills Only a subset of audits are run. The audits that run are the ones that are affected by bill history Also the owner audit setting and any account level audit setting overrides will be applied Resolved flag issues and flags could get re-flagged because of this action If the audit setting is set to Flag and Hold, the bill will get Held from export\n     * \n     * @param body The list of bills to audit\n     */\n    public rerunAudits_1WithHttpInfo(body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202508/audit/rerunAudits';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Enable or disable Accounts from audits\n     * \n     * @param body \n     */\n    public setAccountAuditExclusionWithHttpInfo(body?: AccountAuditEnable, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v202104/account/auditEnabled';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Enable or disable all accounts assigned to a vendor from audits\n     * \n     * @param vendorId The identifier for the vendor to act upon\n     * @param body \n     */\n    public setVendorAccountsAuditExclusionWithHttpInfo(vendorId: number, body?: VendorAuditEnable, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdatedOnlyResult>> {\n        const path = this.basePath + '/api/v202104/vendor/${vendorId}/auditEnabled'\n                    .replace('${' + 'vendorId' + '}', String(vendorId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'vendorId' is not null or undefined\n        if (vendorId === null || vendorId === undefined) {\n            throw new Error('Required parameter vendorId was null or undefined when calling setVendorAccountsAuditExclusion.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdatedOnlyResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Update audit settings for an account.  Every audit must be included but supplying null for its settings will remove them.\n     *  __Setting Status Descriptions:__  | Setting Status | Description | | -------------- | ----------- | | Check          | If this audit fails affected bills are flagged  | | Hold           | If this audit fails affected bills are flagged and held from export  | | Skip           | This audit is skipped  |\n     * @param accountId The account identifier\n     * @param body The new state of the audit settings\n     */\n    public updateAccountAuditSettingsWithHttpInfo(accountId: number, body?: AccountAuditSettingsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<AccountAuditSettingsResponse>> {\n        const path = this.basePath + '/api/v202506/account/${accountId}/auditSetting'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling updateAccountAuditSettings.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<AccountAuditSettingsResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { AccountAuditSettingsResponse } from '../model/accountAuditSettingsResponse';\nimport { FlagIssueResponse } from '../model/flagIssueResponse';\nimport { FlagResponse } from '../model/flagResponse';\nimport { FlagTypeChild } from '../model/flagTypeChild';\nimport { FlagTypeCreate } from '../model/flagTypeCreate';\nimport { FlagWidget } from '../model/flagWidget';\nimport { SingleBoolean } from '../model/singleBoolean';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsFlaggedItemsViewspanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Returns a tabular flag summary by Account for all the accounts under the given cost center\n     * \n     * @param costCenterId Parent cost center identifier\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public billFlagSummaryByAccount(costCenterId: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<FlagWidget> {\n        return this.billFlagSummaryByAccountWithHttpInfo(costCenterId, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<FlagWidget>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Returns a tabular flag summary by Meter for all the meters under the given place\n     * \n     * @param placeId Parent place identifier\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public billFlagSummaryByMeter(placeId: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<FlagWidget> {\n        return this.billFlagSummaryByMeterWithHttpInfo(placeId, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<FlagWidget>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Create a flag type\n     * \n     * @param body Contains the name of the flag type being created\n     */\n    public createFlagType(body?: FlagTypeCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<FlagTypeChild> {\n        return this.createFlagTypeWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<FlagTypeChild>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete a flag type. System flag types cannot be deleted.\n     * \n     * @param flagTypeId The identifier for the flag type being deleted\n     */\n    public deleteFlagType(flagTypeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteFlagTypeWithHttpInfo(flagTypeId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Checks a given account and it&#39;s bills for the existence of a flag For bill flags, void bills are excluded\n     * \n     * @param accountId \n     */\n    public flagInAccountHierarchy(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<SingleBoolean> {\n        return this.flagInAccountHierarchyWithHttpInfo(accountId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<SingleBoolean>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Checks a given cost center and it&#39;s child cost centers, accounts, and bills for the existence of a flag For bill flags, void bills are excluded\n     * \n     * @param costCenterId \n     */\n    public flagInCostCenterHierarchy(costCenterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<SingleBoolean> {\n        return this.flagInCostCenterHierarchyWithHttpInfo(costCenterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<SingleBoolean>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Checks a given meter and it&#39;s bills for the existence of a flag For bill flags, void bills are excluded\n     * \n     * @param meterId \n     */\n    public flagInMeterHierarchy(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<SingleBoolean> {\n        return this.flagInMeterHierarchyWithHttpInfo(meterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<SingleBoolean>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Checks a given place and it&#39;s child places, meters, and bills for the existence of a flag For bill flags, void bills are excluded\n     * \n     * @param placeId \n     */\n    public flagInPlaceHierarchy(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<SingleBoolean> {\n        return this.flagInPlaceHierarchyWithHttpInfo(placeId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<SingleBoolean>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Gets all account audit setting overrides\n     * \n     * @param accountId \n     */\n    public getAccountAuditSettings(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<AccountAuditSettingsResponse> {\n        return this.getAccountAuditSettingsWithHttpInfo(accountId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<AccountAuditSettingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get flag data for a specified entity\n     * \n     * @param entityType The type of entity the flag is being request for. Supported values are: \\&quot;Bill\\&quot;\n     * @param entityId The identifier of the entity\n     */\n    public getFlag(entityType: string, entityId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<FlagResponse> {\n        return this.getFlagWithHttpInfo(entityType, entityId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<FlagResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get flag issues for a specified entity\n     * \n     * @param entityType The type of entity the flag issues are being request for. Supported values are: \\&quot;Bill\\&quot;\n     * @param entityId The identifier of the entity\n     */\n    public getFlagIssues(entityType: string, entityId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<FlagIssueResponse>> {\n        return this.getFlagIssuesWithHttpInfo(entityType, entityId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<FlagIssueResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a list of all available flag types\n     * \n     */\n    public getFlagTypes(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<FlagTypeChild>> {\n        return this.getFlagTypesWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<FlagTypeChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Returns a tabular flag summary by Account for all the accounts under the given cost center\n     * \n     * @param costCenterId Parent cost center identifier\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public billFlagSummaryByAccountWithHttpInfo(costCenterId: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<FlagWidget>> {\n        const path = this.basePath + '/api/v3/flag/costcenter/${costCenterId}/billFlagSummary'\n                    .replace('${' + 'costCenterId' + '}', String(costCenterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'costCenterId' is not null or undefined\n        if (costCenterId === null || costCenterId === undefined) {\n            throw new Error('Required parameter costCenterId was null or undefined when calling billFlagSummaryByAccount.');\n        }\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<FlagWidget>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Returns a tabular flag summary by Meter for all the meters under the given place\n     * \n     * @param placeId Parent place identifier\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public billFlagSummaryByMeterWithHttpInfo(placeId: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<FlagWidget>> {\n        const path = this.basePath + '/api/v3/flag/place/${placeId}/billFlagSummary'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling billFlagSummaryByMeter.');\n        }\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<FlagWidget>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Create a flag type\n     * \n     * @param body Contains the name of the flag type being created\n     */\n    public createFlagTypeWithHttpInfo(body?: FlagTypeCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<FlagTypeChild>> {\n        const path = this.basePath + '/api/v3/flag/flagType';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<FlagTypeChild>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Delete a flag type. System flag types cannot be deleted.\n     * \n     * @param flagTypeId The identifier for the flag type being deleted\n     */\n    public deleteFlagTypeWithHttpInfo(flagTypeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/flag/flagType/${flagTypeId}'\n                    .replace('${' + 'flagTypeId' + '}', String(flagTypeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'flagTypeId' is not null or undefined\n        if (flagTypeId === null || flagTypeId === undefined) {\n            throw new Error('Required parameter flagTypeId was null or undefined when calling deleteFlagType.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Checks a given account and it&#39;s bills for the existence of a flag For bill flags, void bills are excluded\n     * \n     * @param accountId \n     */\n    public flagInAccountHierarchyWithHttpInfo(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<SingleBoolean>> {\n        const path = this.basePath + '/api/v3/flag/account/${accountId}/hierarchy'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling flagInAccountHierarchy.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<SingleBoolean>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Checks a given cost center and it&#39;s child cost centers, accounts, and bills for the existence of a flag For bill flags, void bills are excluded\n     * \n     * @param costCenterId \n     */\n    public flagInCostCenterHierarchyWithHttpInfo(costCenterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<SingleBoolean>> {\n        const path = this.basePath + '/api/v3/flag/costCenter/${costCenterId}/hierarchy'\n                    .replace('${' + 'costCenterId' + '}', String(costCenterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'costCenterId' is not null or undefined\n        if (costCenterId === null || costCenterId === undefined) {\n            throw new Error('Required parameter costCenterId was null or undefined when calling flagInCostCenterHierarchy.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<SingleBoolean>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Checks a given meter and it&#39;s bills for the existence of a flag For bill flags, void bills are excluded\n     * \n     * @param meterId \n     */\n    public flagInMeterHierarchyWithHttpInfo(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<SingleBoolean>> {\n        const path = this.basePath + '/api/v3/flag/meter/${meterId}/hierarchy'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling flagInMeterHierarchy.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<SingleBoolean>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Checks a given place and it&#39;s child places, meters, and bills for the existence of a flag For bill flags, void bills are excluded\n     * \n     * @param placeId \n     */\n    public flagInPlaceHierarchyWithHttpInfo(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<SingleBoolean>> {\n        const path = this.basePath + '/api/v3/flag/place/${placeId}/hierarchy'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling flagInPlaceHierarchy.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<SingleBoolean>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Gets all account audit setting overrides\n     * \n     * @param accountId \n     */\n    public getAccountAuditSettingsWithHttpInfo(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<AccountAuditSettingsResponse>> {\n        const path = this.basePath + '/api/v202506/account/${accountId}/auditSetting'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling getAccountAuditSettings.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<AccountAuditSettingsResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get flag data for a specified entity\n     * \n     * @param entityType The type of entity the flag is being request for. Supported values are: \\&quot;Bill\\&quot;\n     * @param entityId The identifier of the entity\n     */\n    public getFlagWithHttpInfo(entityType: string, entityId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<FlagResponse>> {\n        const path = this.basePath + '/api/v3/flag/${entityType}/${entityId}'\n                    .replace('${' + 'entityType' + '}', String(entityType))\n                    .replace('${' + 'entityId' + '}', String(entityId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'entityType' is not null or undefined\n        if (entityType === null || entityType === undefined) {\n            throw new Error('Required parameter entityType was null or undefined when calling getFlag.');\n        }\n        // verify required parameter 'entityId' is not null or undefined\n        if (entityId === null || entityId === undefined) {\n            throw new Error('Required parameter entityId was null or undefined when calling getFlag.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<FlagResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get flag issues for a specified entity\n     * \n     * @param entityType The type of entity the flag issues are being request for. Supported values are: \\&quot;Bill\\&quot;\n     * @param entityId The identifier of the entity\n     */\n    public getFlagIssuesWithHttpInfo(entityType: string, entityId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<FlagIssueResponse>>> {\n        const path = this.basePath + '/api/v202501/flag/flagIssue/${entityType}/${entityId}'\n                    .replace('${' + 'entityType' + '}', String(entityType))\n                    .replace('${' + 'entityId' + '}', String(entityId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'entityType' is not null or undefined\n        if (entityType === null || entityType === undefined) {\n            throw new Error('Required parameter entityType was null or undefined when calling getFlagIssues.');\n        }\n        // verify required parameter 'entityId' is not null or undefined\n        if (entityId === null || entityId === undefined) {\n            throw new Error('Required parameter entityId was null or undefined when calling getFlagIssues.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<FlagIssueResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a list of all available flag types\n     * \n     */\n    public getFlagTypesWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<FlagTypeChild>>> {\n        const path = this.basePath + '/api/v3/flag/flagType';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<FlagTypeChild>>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { AucRangeRequest } from '../model/aucRangeRequest';\nimport { AucRangeResponse } from '../model/aucRangeResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsGlobalCostAvoidanceSettingsManagespanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Edit the average unit cost \\&quot;acceptable range\\&quot; values for cost avoidance for one or more commodities Cost Avoidance Savings will be re-calculated for all bills for meters having the affected commodities\n     * \n     * @param body Data representing one or more average unit cost ranges to edit\n     */\n    public editAucRanges(body?: Array<AucRangeRequest>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<AucRangeResponse>> {\n        return this.editAucRangesWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<AucRangeResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Edit the average unit cost \\&quot;acceptable range\\&quot; values for cost avoidance for one or more commodities Cost Avoidance Savings will be re-calculated for all bills for meters having the affected commodities\n     * \n     * @param body Data representing one or more average unit cost ranges to edit\n     */\n    public editAucRangesWithHttpInfo(body?: Array<AucRangeRequest>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<AucRangeResponse>>> {\n        const path = this.basePath + '/api/v3/savings/auc';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<AucRangeResponse>>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { AucRangeResponse } from '../model/aucRangeResponse';\nimport { FilterEdit } from '../model/filterEdit';\nimport { GenericCount } from '../model/genericCount';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsGlobalCostAvoidanceSettingsViewspanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Get the average unit cost \\&quot;acceptable range\\&quot; values for cost avoidance for each commodity\n     * \n     */\n    public getAucRanges(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<AucRangeResponse>> {\n        return this.getAucRangesWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<AucRangeResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Count the number of meters that match the filter conditions for cost avoidance bulk actions\n     * \n     * @param onlyMetersInCAP Whether or not to only include meters in the count which are already participating in cost avoidance\n     * @param body The filters used when counting the meters\n     */\n    public getCostAvoidanceMeterCount(onlyMetersInCAP?: boolean, body?: Array<FilterEdit>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<GenericCount> {\n        return this.getCostAvoidanceMeterCountWithHttpInfo(onlyMetersInCAP, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<GenericCount>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Get the average unit cost \\&quot;acceptable range\\&quot; values for cost avoidance for each commodity\n     * \n     */\n    public getAucRangesWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<AucRangeResponse>>> {\n        const path = this.basePath + '/api/v3/savings/auc';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<AucRangeResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Count the number of meters that match the filter conditions for cost avoidance bulk actions\n     * \n     * @param onlyMetersInCAP Whether or not to only include meters in the count which are already participating in cost avoidance\n     * @param body The filters used when counting the meters\n     */\n    public getCostAvoidanceMeterCountWithHttpInfo(onlyMetersInCAP?: boolean, body?: Array<FilterEdit>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<GenericCount>> {\n        const path = this.basePath + '/api/v3/savings/meter/count';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (onlyMetersInCAP !== undefined) {\n            queryParameters = queryParameters.set('onlyMetersInCAP', <any>onlyMetersInCAP);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<GenericCount>(RequestMethod.Post, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { FilterResponse } from '../model/filterResponse';\nimport { GroupMeterGroupResponse } from '../model/groupMeterGroupResponse';\nimport { GroupPlaceGroupMember } from '../model/groupPlaceGroupMember';\nimport { GroupPlaceGroupResponse } from '../model/groupPlaceGroupResponse';\nimport { MeterCategoryResponse } from '../model/meterCategoryResponse';\nimport { MeterGroupDigestDemandRankingResponse } from '../model/meterGroupDigestDemandRankingResponse';\nimport { MeterGroupDigestRankingResponse } from '../model/meterGroupDigestRankingResponse';\nimport { MeterGroupMemberChild } from '../model/meterGroupMemberChild';\nimport { PlaceCategoryResponse } from '../model/placeCategoryResponse';\nimport { PlaceGroupDigestAreaDemandRankingResponse } from '../model/placeGroupDigestAreaDemandRankingResponse';\nimport { PlaceGroupDigestBenchmarkRankingResponse } from '../model/placeGroupDigestBenchmarkRankingResponse';\nimport { PlaceGroupDigestWeatherRankingResponse } from '../model/placeGroupDigestWeatherRankingResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsGroupsAndBenchmarksModuleViewspanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Gets a list of meter groups\n     * \n     * @param filter \n     */\n    public getAllMeterGroups(filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<GroupMeterGroupResponse>> {\n        return this.getAllMeterGroupsWithHttpInfo(filter, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<GroupMeterGroupResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Gets a list of place groups\n     * \n     * @param filter \n     */\n    public getAllPlaceGroups(filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<GroupPlaceGroupResponse>> {\n        return this.getAllPlaceGroupsWithHttpInfo(filter, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<GroupPlaceGroupResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Gets a list of meter categories\n     * \n     */\n    public getMeterCategories(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MeterCategoryResponse>> {\n        return this.getMeterCategoriesWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MeterCategoryResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieve a meter group category\n     * \n     * @param categoryId The identifier for the meter group category being retrieved\n     */\n    public getMeterCategory(categoryId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<MeterCategoryResponse> {\n        return this.getMeterCategoryWithHttpInfo(categoryId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<MeterCategoryResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Gets a meter group\n     * \n     * @param meterGroupId \n     */\n    public getMeterGroup(meterGroupId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<GroupMeterGroupResponse> {\n        return this.getMeterGroupWithHttpInfo(meterGroupId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<GroupMeterGroupResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Gets a list of meter group members\n     * \n     * @param groupId \n     * @param alwaysLimitByTopmost \n     */\n    public getMeterGroupMembers(groupId: number, alwaysLimitByTopmost?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MeterGroupMemberChild>> {\n        return this.getMeterGroupMembersWithHttpInfo(groupId, alwaysLimitByTopmost, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MeterGroupMemberChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves cost, use, unit cost or demand per day ranking data by meter group.\n     * Specify values for any query parameters whose database values are to be overridden.              **PLEASE NOTE: As shown in the table below, this API endpoint returns different response types based on the \\&quot;chart\\&quot; value. Despite what you see below regarding HTTP status codes for each response type, _all_ of these response types will return 200 OK.**  |  Chart   |              Response Type               | | -------- | ---------------------------------------- | | cost     | MeterGroupDigestRankingResponseDTO       | | use      | MeterGroupDigestRankingResponseDTO       | | unitCost | MeterGroupDigestRankingResponseDTO       | | demand   | MeterGroupDigestDemandRankingResponseDTO |\n     * @param groupId The meter group to retrieve data for\n     * @param dataView The desired data view - actual, calendarized, normalized\n     * @param chart The desired chart - cost, use, unitcost, demand\n     * @param billingPeriodOption The billing period option - last12periods, lastyear, lastfiscalyear, custom (optional)\n     * @param startPeriod The custom start period (optional)\n     * @param endPeriod The custom end period (optional)\n     * @param commodityId Id of commodity to filter by (optional)\n     * @param commodityCategoryId Id of commodity category to filter by (optional)\n     * @param highToLowRanking Ranking from high to low, or low to high? (optional)\n     * @param showExcludedMembers Show group members excluded from the group? (optional)\n     * @param showZeroAverages Show group members whose ranking averages are zero? (optional)\n     */\n    public getMeterGroupRanking(groupId: number, dataView: string, chart: string, billingPeriodOption?: string, startPeriod?: number, endPeriod?: number, commodityId?: number, commodityCategoryId?: number, highToLowRanking?: boolean, showExcludedMembers?: boolean, showZeroAverages?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<MeterGroupDigestRankingResponse> {\n        return this.getMeterGroupRankingWithHttpInfo(groupId, dataView, chart, billingPeriodOption, startPeriod, endPeriod, commodityId, commodityCategoryId, highToLowRanking, showExcludedMembers, showZeroAverages, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<MeterGroupDigestRankingResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Gets a list of place categories\n     * \n     */\n    public getPlaceCategories(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<PlaceCategoryResponse>> {\n        return this.getPlaceCategoriesWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<PlaceCategoryResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieve a Place Group Category\n     * \n     * @param categoryId The identifier for the place group category being retrieved\n     */\n    public getPlaceCategory(categoryId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<PlaceCategoryResponse> {\n        return this.getPlaceCategoryWithHttpInfo(categoryId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<PlaceCategoryResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Gets a place group\n     * \n     * @param placeGroupId \n     */\n    public getPlaceGroup(placeGroupId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<GroupPlaceGroupResponse> {\n        return this.getPlaceGroupWithHttpInfo(placeGroupId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<GroupPlaceGroupResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Gets a list of place group members\n     * \n     * @param placeGroupId \n     * @param alwaysLimitByTopmost \n     */\n    public getPlaceGroupMembers(placeGroupId: number, alwaysLimitByTopmost?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<GroupPlaceGroupMember>> {\n        return this.getPlaceGroupMembersWithHttpInfo(placeGroupId, alwaysLimitByTopmost, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<GroupPlaceGroupMember>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves ranking data by place group.\n     * Depending on the \\&quot;chart\\&quot; parameter retrieved ranking data could be cost, use, or demand per area, cost or use per day, heating sensitivity or cooling sensitivity Specify values for any query parameters whose database values are to be overridden. For the heating sensitivity and cooling sensitivity charts we sort by weather sensitivity (slope) and exclude non-weather meters          **PLEASE NOTE: As shown in the table above, this API endpoint returns different response types based on the \\&quot;chart\\&quot; value. Despite what you see below regarding HTTP status codes for each response type, _all_ of these response types will return 200 OK.**  | Chart              | Response Type                                | | ------------------ | -------------------------------------------- | | areaCost           | PlaceGroupDigestAreaRankingResponseDTO       | | areaUse            | PlaceGroupDigestAreaRankingResponseDTO       | | cost               | PlaceGroupDigestRankingResponseDTO           | | use                | PlaceGroupDigestRankingResponseDTO           | | areaDemand         | PlaceGroupDigestAreaDemandRankingResponseDTO | | coolingSensitivity | PlaceGroupDigestWeatherRankingResponseDTO    | | heatingSensitivity | PlaceGroupDigestWeatherRankingResponseDTO    | | benchmark1Use      | PlaceGroupDigestBenchmarkRankingResponseDTO  | | benchmark2Use      | PlaceGroupDigestBenchmarkRankingResponseDTO  | | benchmark3Use      | PlaceGroupDigestBenchmarkRankingResponseDTO  | | benchmark1Cost     | PlaceGroupDigestBenchmarkRankingResponseDTO  | | benchmark2Cost     | PlaceGroupDigestBenchmarkRankingResponseDTO  | | benchmark3Cost     | PlaceGroupDigestBenchmarkRankingResponseDTO  |\n     * @param groupId The place group to retrieve data for\n     * @param dataView The desired data view - actual, calendarized, normalized\n     * @param chart The desired chart - areacost, areause, areademand, cost, use, heatingsensitivity, coolingsensitivity, benchmark1use, benchmark1cost, benchmark2use, benchmark2cost, benchmark3use, benchmark3cost\n     * @param billingPeriodOption The billing period option - last12periods, currentyear, lastfiscalyear, custom (optional)\n     * @param startPeriod The custom start period (optional)\n     * @param endPeriod The custom end period (optional)\n     * @param commodityId Id of commodity to filter by (optional)\n     * @param commodityCategoryId Id of commodity category to filter by (optional)\n     * @param highToLowRanking Ranking from high to low, or low to high? (optional)\n     * @param showExcludedMembers Show group members excluded from the group? (optional)\n     * @param showZeroAverages Show group members whose ranking averages are zero? (optional)\n     */\n    public getPlaceGroupRanking(groupId: number, dataView: string, chart: string, billingPeriodOption?: string, startPeriod?: number, endPeriod?: number, commodityId?: number, commodityCategoryId?: number, highToLowRanking?: boolean, showExcludedMembers?: boolean, showZeroAverages?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<PlaceGroupDigestAreaDemandRankingResponse> {\n        return this.getPlaceGroupRankingWithHttpInfo(groupId, dataView, chart, billingPeriodOption, startPeriod, endPeriod, commodityId, commodityCategoryId, highToLowRanking, showExcludedMembers, showZeroAverages, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<PlaceGroupDigestAreaDemandRankingResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Gets a list of filters that can be used to create Meter Groups\n     * \n     */\n    public getUserDefinedAutoMeterGroupFilters(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<FilterResponse>> {\n        return this.getUserDefinedAutoMeterGroupFiltersWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<FilterResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Gets a list of filters that can be used to create Place Groups\n     * \n     */\n    public getUserDefinedAutoPlaceGroupFilters(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<FilterResponse>> {\n        return this.getUserDefinedAutoPlaceGroupFiltersWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<FilterResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Gets a list of meter groups\n     * \n     * @param filter \n     */\n    public getAllMeterGroupsWithHttpInfo(filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<GroupMeterGroupResponse>>> {\n        const path = this.basePath + '/api/v3/meterGroup';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<GroupMeterGroupResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Gets a list of place groups\n     * \n     * @param filter \n     */\n    public getAllPlaceGroupsWithHttpInfo(filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<GroupPlaceGroupResponse>>> {\n        const path = this.basePath + '/api/v3/placeGroup';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<GroupPlaceGroupResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Gets a list of meter categories\n     * \n     */\n    public getMeterCategoriesWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MeterCategoryResponse>>> {\n        const path = this.basePath + '/api/v3/meterGroup/category';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MeterCategoryResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieve a meter group category\n     * \n     * @param categoryId The identifier for the meter group category being retrieved\n     */\n    public getMeterCategoryWithHttpInfo(categoryId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<MeterCategoryResponse>> {\n        const path = this.basePath + '/api/v3/meterGroup/category/${categoryId}'\n                    .replace('${' + 'categoryId' + '}', String(categoryId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'categoryId' is not null or undefined\n        if (categoryId === null || categoryId === undefined) {\n            throw new Error('Required parameter categoryId was null or undefined when calling getMeterCategory.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<MeterCategoryResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Gets a meter group\n     * \n     * @param meterGroupId \n     */\n    public getMeterGroupWithHttpInfo(meterGroupId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<GroupMeterGroupResponse>> {\n        const path = this.basePath + '/api/v3/meterGroup/${meterGroupId}'\n                    .replace('${' + 'meterGroupId' + '}', String(meterGroupId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterGroupId' is not null or undefined\n        if (meterGroupId === null || meterGroupId === undefined) {\n            throw new Error('Required parameter meterGroupId was null or undefined when calling getMeterGroup.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<GroupMeterGroupResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Gets a list of meter group members\n     * \n     * @param groupId \n     * @param alwaysLimitByTopmost \n     */\n    public getMeterGroupMembersWithHttpInfo(groupId: number, alwaysLimitByTopmost?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MeterGroupMemberChild>>> {\n        const path = this.basePath + '/api/v3/meterGroup/${groupId}/member'\n                    .replace('${' + 'groupId' + '}', String(groupId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'groupId' is not null or undefined\n        if (groupId === null || groupId === undefined) {\n            throw new Error('Required parameter groupId was null or undefined when calling getMeterGroupMembers.');\n        }\n        if (alwaysLimitByTopmost !== undefined) {\n            queryParameters = queryParameters.set('alwaysLimitByTopmost', <any>alwaysLimitByTopmost);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MeterGroupMemberChild>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves cost, use, unit cost or demand per day ranking data by meter group.\n     * Specify values for any query parameters whose database values are to be overridden.              **PLEASE NOTE: As shown in the table below, this API endpoint returns different response types based on the \\&quot;chart\\&quot; value. Despite what you see below regarding HTTP status codes for each response type, _all_ of these response types will return 200 OK.**  |  Chart   |              Response Type               | | -------- | ---------------------------------------- | | cost     | MeterGroupDigestRankingResponseDTO       | | use      | MeterGroupDigestRankingResponseDTO       | | unitCost | MeterGroupDigestRankingResponseDTO       | | demand   | MeterGroupDigestDemandRankingResponseDTO |\n     * @param groupId The meter group to retrieve data for\n     * @param dataView The desired data view - actual, calendarized, normalized\n     * @param chart The desired chart - cost, use, unitcost, demand\n     * @param billingPeriodOption The billing period option - last12periods, lastyear, lastfiscalyear, custom (optional)\n     * @param startPeriod The custom start period (optional)\n     * @param endPeriod The custom end period (optional)\n     * @param commodityId Id of commodity to filter by (optional)\n     * @param commodityCategoryId Id of commodity category to filter by (optional)\n     * @param highToLowRanking Ranking from high to low, or low to high? (optional)\n     * @param showExcludedMembers Show group members excluded from the group? (optional)\n     * @param showZeroAverages Show group members whose ranking averages are zero? (optional)\n     */\n    public getMeterGroupRankingWithHttpInfo(groupId: number, dataView: string, chart: string, billingPeriodOption?: string, startPeriod?: number, endPeriod?: number, commodityId?: number, commodityCategoryId?: number, highToLowRanking?: boolean, showExcludedMembers?: boolean, showZeroAverages?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<MeterGroupDigestRankingResponse>> {\n        const path = this.basePath + '/api/v3/meterGroup/${groupId}/digest/${dataView}/${chart}'\n                    .replace('${' + 'groupId' + '}', String(groupId))\n                    .replace('${' + 'dataView' + '}', String(dataView))\n                    .replace('${' + 'chart' + '}', String(chart));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'groupId' is not null or undefined\n        if (groupId === null || groupId === undefined) {\n            throw new Error('Required parameter groupId was null or undefined when calling getMeterGroupRanking.');\n        }\n        // verify required parameter 'dataView' is not null or undefined\n        if (dataView === null || dataView === undefined) {\n            throw new Error('Required parameter dataView was null or undefined when calling getMeterGroupRanking.');\n        }\n        // verify required parameter 'chart' is not null or undefined\n        if (chart === null || chart === undefined) {\n            throw new Error('Required parameter chart was null or undefined when calling getMeterGroupRanking.');\n        }\n        if (billingPeriodOption !== undefined) {\n            queryParameters = queryParameters.set('billingPeriodOption', <any>billingPeriodOption);\n        }\n\n        if (startPeriod !== undefined) {\n            queryParameters = queryParameters.set('startPeriod', <any>startPeriod);\n        }\n\n        if (endPeriod !== undefined) {\n            queryParameters = queryParameters.set('endPeriod', <any>endPeriod);\n        }\n\n        if (commodityId !== undefined) {\n            queryParameters = queryParameters.set('commodityId', <any>commodityId);\n        }\n\n        if (commodityCategoryId !== undefined) {\n            queryParameters = queryParameters.set('commodityCategoryId', <any>commodityCategoryId);\n        }\n\n        if (highToLowRanking !== undefined) {\n            queryParameters = queryParameters.set('highToLowRanking', <any>highToLowRanking);\n        }\n\n        if (showExcludedMembers !== undefined) {\n            queryParameters = queryParameters.set('showExcludedMembers', <any>showExcludedMembers);\n        }\n\n        if (showZeroAverages !== undefined) {\n            queryParameters = queryParameters.set('showZeroAverages', <any>showZeroAverages);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<MeterGroupDigestRankingResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Gets a list of place categories\n     * \n     */\n    public getPlaceCategoriesWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<PlaceCategoryResponse>>> {\n        const path = this.basePath + '/api/v3/placeGroup/category';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<PlaceCategoryResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieve a Place Group Category\n     * \n     * @param categoryId The identifier for the place group category being retrieved\n     */\n    public getPlaceCategoryWithHttpInfo(categoryId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<PlaceCategoryResponse>> {\n        const path = this.basePath + '/api/v3/placeGroup/category/${categoryId}'\n                    .replace('${' + 'categoryId' + '}', String(categoryId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'categoryId' is not null or undefined\n        if (categoryId === null || categoryId === undefined) {\n            throw new Error('Required parameter categoryId was null or undefined when calling getPlaceCategory.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<PlaceCategoryResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Gets a place group\n     * \n     * @param placeGroupId \n     */\n    public getPlaceGroupWithHttpInfo(placeGroupId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<GroupPlaceGroupResponse>> {\n        const path = this.basePath + '/api/v3/placeGroup/${placeGroupId}'\n                    .replace('${' + 'placeGroupId' + '}', String(placeGroupId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeGroupId' is not null or undefined\n        if (placeGroupId === null || placeGroupId === undefined) {\n            throw new Error('Required parameter placeGroupId was null or undefined when calling getPlaceGroup.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<GroupPlaceGroupResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Gets a list of place group members\n     * \n     * @param placeGroupId \n     * @param alwaysLimitByTopmost \n     */\n    public getPlaceGroupMembersWithHttpInfo(placeGroupId: number, alwaysLimitByTopmost?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<GroupPlaceGroupMember>>> {\n        const path = this.basePath + '/api/v3/placeGroup/${placeGroupId}/member'\n                    .replace('${' + 'placeGroupId' + '}', String(placeGroupId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeGroupId' is not null or undefined\n        if (placeGroupId === null || placeGroupId === undefined) {\n            throw new Error('Required parameter placeGroupId was null or undefined when calling getPlaceGroupMembers.');\n        }\n        if (alwaysLimitByTopmost !== undefined) {\n            queryParameters = queryParameters.set('alwaysLimitByTopmost', <any>alwaysLimitByTopmost);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<GroupPlaceGroupMember>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves ranking data by place group.\n     * Depending on the \\&quot;chart\\&quot; parameter retrieved ranking data could be cost, use, or demand per area, cost or use per day, heating sensitivity or cooling sensitivity Specify values for any query parameters whose database values are to be overridden. For the heating sensitivity and cooling sensitivity charts we sort by weather sensitivity (slope) and exclude non-weather meters          **PLEASE NOTE: As shown in the table above, this API endpoint returns different response types based on the \\&quot;chart\\&quot; value. Despite what you see below regarding HTTP status codes for each response type, _all_ of these response types will return 200 OK.**  | Chart              | Response Type                                | | ------------------ | -------------------------------------------- | | areaCost           | PlaceGroupDigestAreaRankingResponseDTO       | | areaUse            | PlaceGroupDigestAreaRankingResponseDTO       | | cost               | PlaceGroupDigestRankingResponseDTO           | | use                | PlaceGroupDigestRankingResponseDTO           | | areaDemand         | PlaceGroupDigestAreaDemandRankingResponseDTO | | coolingSensitivity | PlaceGroupDigestWeatherRankingResponseDTO    | | heatingSensitivity | PlaceGroupDigestWeatherRankingResponseDTO    | | benchmark1Use      | PlaceGroupDigestBenchmarkRankingResponseDTO  | | benchmark2Use      | PlaceGroupDigestBenchmarkRankingResponseDTO  | | benchmark3Use      | PlaceGroupDigestBenchmarkRankingResponseDTO  | | benchmark1Cost     | PlaceGroupDigestBenchmarkRankingResponseDTO  | | benchmark2Cost     | PlaceGroupDigestBenchmarkRankingResponseDTO  | | benchmark3Cost     | PlaceGroupDigestBenchmarkRankingResponseDTO  |\n     * @param groupId The place group to retrieve data for\n     * @param dataView The desired data view - actual, calendarized, normalized\n     * @param chart The desired chart - areacost, areause, areademand, cost, use, heatingsensitivity, coolingsensitivity, benchmark1use, benchmark1cost, benchmark2use, benchmark2cost, benchmark3use, benchmark3cost\n     * @param billingPeriodOption The billing period option - last12periods, currentyear, lastfiscalyear, custom (optional)\n     * @param startPeriod The custom start period (optional)\n     * @param endPeriod The custom end period (optional)\n     * @param commodityId Id of commodity to filter by (optional)\n     * @param commodityCategoryId Id of commodity category to filter by (optional)\n     * @param highToLowRanking Ranking from high to low, or low to high? (optional)\n     * @param showExcludedMembers Show group members excluded from the group? (optional)\n     * @param showZeroAverages Show group members whose ranking averages are zero? (optional)\n     */\n    public getPlaceGroupRankingWithHttpInfo(groupId: number, dataView: string, chart: string, billingPeriodOption?: string, startPeriod?: number, endPeriod?: number, commodityId?: number, commodityCategoryId?: number, highToLowRanking?: boolean, showExcludedMembers?: boolean, showZeroAverages?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<PlaceGroupDigestAreaDemandRankingResponse>> {\n        const path = this.basePath + '/api/v3/placeGroup/${groupId}/digest/${dataView}/${chart}'\n                    .replace('${' + 'groupId' + '}', String(groupId))\n                    .replace('${' + 'dataView' + '}', String(dataView))\n                    .replace('${' + 'chart' + '}', String(chart));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'groupId' is not null or undefined\n        if (groupId === null || groupId === undefined) {\n            throw new Error('Required parameter groupId was null or undefined when calling getPlaceGroupRanking.');\n        }\n        // verify required parameter 'dataView' is not null or undefined\n        if (dataView === null || dataView === undefined) {\n            throw new Error('Required parameter dataView was null or undefined when calling getPlaceGroupRanking.');\n        }\n        // verify required parameter 'chart' is not null or undefined\n        if (chart === null || chart === undefined) {\n            throw new Error('Required parameter chart was null or undefined when calling getPlaceGroupRanking.');\n        }\n        if (billingPeriodOption !== undefined) {\n            queryParameters = queryParameters.set('billingPeriodOption', <any>billingPeriodOption);\n        }\n\n        if (startPeriod !== undefined) {\n            queryParameters = queryParameters.set('startPeriod', <any>startPeriod);\n        }\n\n        if (endPeriod !== undefined) {\n            queryParameters = queryParameters.set('endPeriod', <any>endPeriod);\n        }\n\n        if (commodityId !== undefined) {\n            queryParameters = queryParameters.set('commodityId', <any>commodityId);\n        }\n\n        if (commodityCategoryId !== undefined) {\n            queryParameters = queryParameters.set('commodityCategoryId', <any>commodityCategoryId);\n        }\n\n        if (highToLowRanking !== undefined) {\n            queryParameters = queryParameters.set('highToLowRanking', <any>highToLowRanking);\n        }\n\n        if (showExcludedMembers !== undefined) {\n            queryParameters = queryParameters.set('showExcludedMembers', <any>showExcludedMembers);\n        }\n\n        if (showZeroAverages !== undefined) {\n            queryParameters = queryParameters.set('showZeroAverages', <any>showZeroAverages);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<PlaceGroupDigestAreaDemandRankingResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Gets a list of filters that can be used to create Meter Groups\n     * \n     */\n    public getUserDefinedAutoMeterGroupFiltersWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<FilterResponse>>> {\n        const path = this.basePath + '/api/v3/meterGroup/filters';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<FilterResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Gets a list of filters that can be used to create Place Groups\n     * \n     */\n    public getUserDefinedAutoPlaceGroupFiltersWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<FilterResponse>>> {\n        const path = this.basePath + '/api/v3/placeGroup/filters';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<FilterResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { DeleteReadingResponse } from '../model/deleteReadingResponse';\nimport { GuidResponse } from '../model/guidResponse';\nimport { Reading } from '../model/reading';\nimport { ReadingCreate } from '../model/readingCreate';\nimport { ReadingDelete } from '../model/readingDelete';\nimport { ReadingImportProfileRequest } from '../model/readingImportProfileRequest';\nimport { ReadingImportProfileResponse } from '../model/readingImportProfileResponse';\nimport { ReadingImportRequest } from '../model/readingImportRequest';\nimport { ReadingResponse } from '../model/readingResponse';\nimport { ReadingsObservation } from '../model/readingsObservation';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsIntervalDataManagespanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Creates an interval data import profile\n     * \n     * @param body The details about the profile being created\n     */\n    public createReadingImportProfile(body?: ReadingImportProfileRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ReadingImportProfileResponse> {\n        return this.createReadingImportProfileWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ReadingImportProfileResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Creates new readings\n     * \n     * @param body Data representing the readings being imported\n     */\n    public createReadings(body?: Array<ReadingCreate>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ReadingResponse> {\n        return this.createReadingsWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ReadingResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes a reading import profile\n     * \n     * @param profileId The identifier for the profile being deleted\n     */\n    public deleteReadingImportProfile(profileId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteReadingImportProfileWithHttpInfo(profileId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes one or more sets of meter readings.  Each set of meter readings to be deleted is on one channel and covers a time range signified by a begin and end date and time. The time range includes all readings greater than the begin time and less than or equal to the end date and time. To delete only one reading, set the begin and end date and time to the same value.\n     * \n     * @param body The channel id, begin date and time and end date and time of the set of meter readings to be deleted\n     */\n    public deleteReadings(body?: Array<ReadingDelete>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<DeleteReadingResponse> {\n        return this.deleteReadingsWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<DeleteReadingResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes a single interval data reading by its ID\n     * \n     * @param readingId Unique ID of the reading to delete\n     */\n    public deleteSingleReading(readingId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteSingleReadingWithHttpInfo(readingId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits an interval data import profile\n     * \n     * @param profileId The identifier for the profile being edited\n     * @param body The details about the profile being edited\n     */\n    public editReadingImportProfile(profileId: number, body?: ReadingImportProfileRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ReadingImportProfileResponse> {\n        return this.editReadingImportProfileWithHttpInfo(profileId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ReadingImportProfileResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits a single interval data reading. Duplicate timestamps are not allowed for readings on a given channel. If the reading being edited has the same timestamp as another reading on the same channel, this end point throws an error\n     * \n     * @param readingId Unique ID of the reading to edit\n     * @param body Updated reading properties\n     */\n    public editSingleReading(readingId: number, body?: Reading, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ReadingsObservation> {\n        return this.editSingleReadingWithHttpInfo(readingId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ReadingsObservation>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Returns one reading import profile\n     * \n     * @param profileId \n     */\n    public getReadingImportProfile(profileId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ReadingImportProfileResponse> {\n        return this.getReadingImportProfileWithHttpInfo(profileId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ReadingImportProfileResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Returns all Reading Import profiles\n     * \n     */\n    public getReadingImportProfiles(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<ReadingImportProfileResponse>> {\n        return this.getReadingImportProfilesWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<ReadingImportProfileResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * This endpoint allows the import of a channel reading (\\&quot;interval\\&quot;) data import file. The file should be a base64-encoded delimited text file with a UTF8 character set.\n     * \n     * @param body DTO containing the data to export and the profile that defines the structure.\n     */\n    public readingImport(body?: ReadingImportRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<GuidResponse> {\n        return this.readingImportWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<GuidResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Creates an interval data import profile\n     * \n     * @param body The details about the profile being created\n     */\n    public createReadingImportProfileWithHttpInfo(body?: ReadingImportProfileRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ReadingImportProfileResponse>> {\n        const path = this.basePath + '/api/v3/import/reading/profile';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ReadingImportProfileResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Creates new readings\n     * \n     * @param body Data representing the readings being imported\n     */\n    public createReadingsWithHttpInfo(body?: Array<ReadingCreate>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ReadingResponse>> {\n        const path = this.basePath + '/api/v3/reading';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ReadingResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Deletes a reading import profile\n     * \n     * @param profileId The identifier for the profile being deleted\n     */\n    public deleteReadingImportProfileWithHttpInfo(profileId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/import/reading/profile/${profileId}'\n                    .replace('${' + 'profileId' + '}', String(profileId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'profileId' is not null or undefined\n        if (profileId === null || profileId === undefined) {\n            throw new Error('Required parameter profileId was null or undefined when calling deleteReadingImportProfile.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Deletes one or more sets of meter readings.  Each set of meter readings to be deleted is on one channel and covers a time range signified by a begin and end date and time. The time range includes all readings greater than the begin time and less than or equal to the end date and time. To delete only one reading, set the begin and end date and time to the same value.\n     * \n     * @param body The channel id, begin date and time and end date and time of the set of meter readings to be deleted\n     */\n    public deleteReadingsWithHttpInfo(body?: Array<ReadingDelete>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<DeleteReadingResponse>> {\n        const path = this.basePath + '/api/v3/reading';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<DeleteReadingResponse>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Deletes a single interval data reading by its ID\n     * \n     * @param readingId Unique ID of the reading to delete\n     */\n    public deleteSingleReadingWithHttpInfo(readingId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/reading/${readingId}'\n                    .replace('${' + 'readingId' + '}', String(readingId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'readingId' is not null or undefined\n        if (readingId === null || readingId === undefined) {\n            throw new Error('Required parameter readingId was null or undefined when calling deleteSingleReading.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Edits an interval data import profile\n     * \n     * @param profileId The identifier for the profile being edited\n     * @param body The details about the profile being edited\n     */\n    public editReadingImportProfileWithHttpInfo(profileId: number, body?: ReadingImportProfileRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ReadingImportProfileResponse>> {\n        const path = this.basePath + '/api/v3/import/reading/profile/${profileId}'\n                    .replace('${' + 'profileId' + '}', String(profileId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'profileId' is not null or undefined\n        if (profileId === null || profileId === undefined) {\n            throw new Error('Required parameter profileId was null or undefined when calling editReadingImportProfile.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ReadingImportProfileResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edits a single interval data reading. Duplicate timestamps are not allowed for readings on a given channel. If the reading being edited has the same timestamp as another reading on the same channel, this end point throws an error\n     * \n     * @param readingId Unique ID of the reading to edit\n     * @param body Updated reading properties\n     */\n    public editSingleReadingWithHttpInfo(readingId: number, body?: Reading, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ReadingsObservation>> {\n        const path = this.basePath + '/api/v3/reading/${readingId}'\n                    .replace('${' + 'readingId' + '}', String(readingId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'readingId' is not null or undefined\n        if (readingId === null || readingId === undefined) {\n            throw new Error('Required parameter readingId was null or undefined when calling editSingleReading.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ReadingsObservation>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Returns one reading import profile\n     * \n     * @param profileId \n     */\n    public getReadingImportProfileWithHttpInfo(profileId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ReadingImportProfileResponse>> {\n        const path = this.basePath + '/api/v3/import/reading/profile/${profileId}'\n                    .replace('${' + 'profileId' + '}', String(profileId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'profileId' is not null or undefined\n        if (profileId === null || profileId === undefined) {\n            throw new Error('Required parameter profileId was null or undefined when calling getReadingImportProfile.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ReadingImportProfileResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Returns all Reading Import profiles\n     * \n     */\n    public getReadingImportProfilesWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<ReadingImportProfileResponse>>> {\n        const path = this.basePath + '/api/v3/import/reading/profile';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<ReadingImportProfileResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * This endpoint allows the import of a channel reading (\\&quot;interval\\&quot;) data import file. The file should be a base64-encoded delimited text file with a UTF8 character set.\n     * \n     * @param body DTO containing the data to export and the profile that defines the structure.\n     */\n    public readingImportWithHttpInfo(body?: ReadingImportRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<GuidResponse>> {\n        const path = this.basePath + '/api/v3/import/reading';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<GuidResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { Readings } from '../model/readings';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsLicenseFeatureIntervalDataAnalysisViewspanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Retrieves interval data for a specific widget NOTE: Does not support global dashboard filtering with Topmost Place, Place Group API filters.\n     * \n     * @param specificWidgetId Specific widget identifier to get the data for\n     */\n    public getIntervalData(specificWidgetId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<Readings>> {\n        return this.getIntervalDataWithHttpInfo(specificWidgetId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<Readings>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Retrieves interval data for a specific widget NOTE: Does not support global dashboard filtering with Topmost Place, Place Group API filters.\n     * \n     * @param specificWidgetId Specific widget identifier to get the data for\n     */\n    public getIntervalDataWithHttpInfo(specificWidgetId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<Readings>>> {\n        const path = this.basePath + '/api/v3/widget/intervaldata/${specificWidgetId}'\n                    .replace('${' + 'specificWidgetId' + '}', String(specificWidgetId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificWidgetId' is not null or undefined\n        if (specificWidgetId === null || specificWidgetId === undefined) {\n            throw new Error('Required parameter specificWidgetId was null or undefined when calling getIntervalData.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<Readings>>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { ManualAdjustmentRequest } from '../model/manualAdjustmentRequest';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsManuallyAdjustSavingsManagespanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Creates or removes manual adjustments to savings for a provided meter and bill\n     * \n     * @param meterId The meter for which the manual adjustment is being made\n     * @param billId The bill for which the manual adjustment is being made\n     * @param body \n     */\n    public manualAdjustment(meterId: number, billId: number, body?: ManualAdjustmentRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.manualAdjustmentWithHttpInfo(meterId, billId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Creates or removes manual adjustments to savings for a provided meter and bill\n     * \n     * @param meterId The meter for which the manual adjustment is being made\n     * @param billId The bill for which the manual adjustment is being made\n     * @param body \n     */\n    public manualAdjustmentWithHttpInfo(meterId: number, billId: number, body?: ManualAdjustmentRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/savings/meter/${meterId}/bill/${billId}/manualadjustment'\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'billId' + '}', String(billId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling manualAdjustment.');\n        }\n        // verify required parameter 'billId' is not null or undefined\n        if (billId === null || billId === undefined) {\n            throw new Error('Required parameter billId was null or undefined when calling manualAdjustment.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Post, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { BulkMeterCostAvoidanceSettings } from '../model/bulkMeterCostAvoidanceSettings';\nimport { CostAvoidanceTask } from '../model/costAvoidanceTask';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsMeterSavingsSettingsManagespanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Mass update certain cost avoidance settings for meters that match the filter conditions Baseline and Savings will be reprocessed for affected meters\n     * \n     * @param body Filters and new cost avoidance setting values\n     */\n    public bulkEditMeterCostAvoidanceSettings(body?: BulkMeterCostAvoidanceSettings, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CostAvoidanceTask> {\n        return this.bulkEditMeterCostAvoidanceSettingsWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CostAvoidanceTask>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Mass update certain cost avoidance settings for meters that match the filter conditions Baseline and Savings will be reprocessed for affected meters\n     * \n     * @param body Filters and new cost avoidance setting values\n     */\n    public bulkEditMeterCostAvoidanceSettingsWithHttpInfo(body?: BulkMeterCostAvoidanceSettings, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CostAvoidanceTask>> {\n        const path = this.basePath + '/api/v3/savings/meter';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CostAvoidanceTask>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { BaselineProcessorRequest } from '../model/baselineProcessorRequest';\nimport { BaselineProcessorResponse } from '../model/baselineProcessorResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsMeterSavingsSettingsViewspanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Executes the baseline and cost avoidance processors with provided baseline and cost avoidance settings for the provided meter.  Results are not saved unless the \\&quot;save\\&quot; flag is set to true. If \\&quot;save\\&quot; is true, MeterSavingsSettings-Manage permission is also required\n     * \n     * @param meterId ID of the meter for which baseline will be reprocessed\n     * @param save If true, the baseline results will be saved to the database\n     * @param body Provided baseline and avoidance settings\n     */\n    public generateBaseline(meterId: number, save?: boolean, body?: BaselineProcessorRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BaselineProcessorResponse> {\n        return this.generateBaselineWithHttpInfo(meterId, save, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BaselineProcessorResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Executes the baseline processor with stored baseline settings for the provided meter\n     * \n     * @param meterId ID of the meter for which baseline data will be returned\n     */\n    public generateBaselineGet(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<BaselineProcessorResponse> {\n        return this.generateBaselineGetWithHttpInfo(meterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<BaselineProcessorResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Executes the baseline and cost avoidance processors with provided baseline and cost avoidance settings for the provided meter.  Results are not saved unless the \\&quot;save\\&quot; flag is set to true. If \\&quot;save\\&quot; is true, MeterSavingsSettings-Manage permission is also required\n     * \n     * @param meterId ID of the meter for which baseline will be reprocessed\n     * @param save If true, the baseline results will be saved to the database\n     * @param body Provided baseline and avoidance settings\n     */\n    public generateBaselineWithHttpInfo(meterId: number, save?: boolean, body?: BaselineProcessorRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BaselineProcessorResponse>> {\n        const path = this.basePath + '/api/v3/savings/meter/${meterId}/baseline'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling generateBaseline.');\n        }\n        if (save !== undefined) {\n            queryParameters = queryParameters.set('save', <any>save);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BaselineProcessorResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Executes the baseline processor with stored baseline settings for the provided meter\n     * \n     * @param meterId ID of the meter for which baseline data will be returned\n     */\n    public generateBaselineGetWithHttpInfo(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<BaselineProcessorResponse>> {\n        const path = this.basePath + '/api/v3/savings/meter/${meterId}/baseline'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling generateBaselineGet.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<BaselineProcessorResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { CalculatedBillDetailsResponse } from '../model/calculatedBillDetailsResponse';\nimport { CreateUtilityPlatformMeter } from '../model/createUtilityPlatformMeter';\nimport { DataPointCreate } from '../model/dataPointCreate';\nimport { DataPointResponse } from '../model/dataPointResponse';\nimport { DetailedGuidResponse } from '../model/detailedGuidResponse';\nimport { EsaChannelCreate } from '../model/esaChannelCreate';\nimport { EsaChannelResponse } from '../model/esaChannelResponse';\nimport { EsaReadingImportProfileCreate } from '../model/esaReadingImportProfileCreate';\nimport { EsaReadingImportProfileResponse } from '../model/esaReadingImportProfileResponse';\nimport { EsaReadingImportRequest } from '../model/esaReadingImportRequest';\nimport { MeterCreate } from '../model/meterCreate';\nimport { MeterResponse } from '../model/meterResponse';\nimport { RouteRequest } from '../model/routeRequest';\nimport { RouteResponse } from '../model/routeResponse';\nimport { UpsertAggregateMeterRequest } from '../model/upsertAggregateMeterRequest';\nimport { UtilityPlatformMeter } from '../model/utilityPlatformMeter';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsMetersCreatespanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Creates a data point\n     * \n     * @param body Data representing the data point being created\n     */\n    public createDataPoint(body?: DataPointCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<DataPointResponse> {\n        return this.createDataPointWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<DataPointResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Creates an ESA channel\n     * \n     * @param body Data representing the ESA channel being created\n     */\n    public createEsaChannel(body?: EsaChannelCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EsaChannelResponse> {\n        return this.createEsaChannelWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EsaChannelResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Creates an ESA reading import profile\n     * \n     * @param body Object containing settings for the new profile\n     */\n    public createEsaReadingImportProfile(body?: EsaReadingImportProfileCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EsaReadingImportProfileResponse> {\n        return this.createEsaReadingImportProfileWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EsaReadingImportProfileResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Creates a meter\n     * \n     * @param body Data representing the meter being created\n     */\n    public createMeter(body?: MeterCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<MeterResponse> {\n        return this.createMeterWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<MeterResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Creates a new route and assigns a group of meters to it\n     * \n     * @param body Data representing the route being created\n     */\n    public createRoute(body?: RouteRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<RouteResponse> {\n        return this.createRouteWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<RouteResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Create meters on a particular place\n     * \n     * @param placeId The id of the place\n     * @param body The meters to create on the place\n     */\n    public createUtilityPlatformMetersByPlace(placeId: number, body?: Array<CreateUtilityPlatformMeter>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<UtilityPlatformMeter>> {\n        return this.createUtilityPlatformMetersByPlaceWithHttpInfo(placeId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<UtilityPlatformMeter>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * This endpoint allows the import of an ESA reading import file. The file should be a base64-encoded file with a UTF8 character set.\n     * \n     * @param body DTO containing the data to import and the profile that defines the structure.\n     */\n    public importEsaReadingWithProfile(body?: EsaReadingImportRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<DetailedGuidResponse>> {\n        return this.importEsaReadingWithProfileWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<DetailedGuidResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Create a new aggregate meter, update an existing version, create a new version If AggregateMeterId is null: a new aggregate meter and version is always created If AggregateMeterId is not null: it must exist and only associated with 1 account otherwise error If AggregateMeterId exists: we will always update the Aggregate&#39;s MeterInfo and AccountInfo If AggregateMeterId exists and no version exists on the same account and meter with the specified billing period: a new version is created If AggregateMeterId exists and a version exists on the same account and meter with the specified billing period: the version is updated\n     * \n     * @param placeId The id of the place to insert the aggregate meter\n     * @param body The release request details\n     */\n    public upsertAggregateMeter(placeId: number, body?: UpsertAggregateMeterRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CalculatedBillDetailsResponse> {\n        return this.upsertAggregateMeterWithHttpInfo(placeId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CalculatedBillDetailsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Creates a data point\n     * \n     * @param body Data representing the data point being created\n     */\n    public createDataPointWithHttpInfo(body?: DataPointCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<DataPointResponse>> {\n        const path = this.basePath + '/api/v202406/datapoint';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<DataPointResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Creates an ESA channel\n     * \n     * @param body Data representing the ESA channel being created\n     */\n    public createEsaChannelWithHttpInfo(body?: EsaChannelCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EsaChannelResponse>> {\n        const path = this.basePath + '/api/v202406/esachannel';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EsaChannelResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Creates an ESA reading import profile\n     * \n     * @param body Object containing settings for the new profile\n     */\n    public createEsaReadingImportProfileWithHttpInfo(body?: EsaReadingImportProfileCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EsaReadingImportProfileResponse>> {\n        const path = this.basePath + '/api/v202407/import/esareading/profile';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EsaReadingImportProfileResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Creates a meter\n     * \n     * @param body Data representing the meter being created\n     */\n    public createMeterWithHttpInfo(body?: MeterCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<MeterResponse>> {\n        const path = this.basePath + '/api/v3/meter';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<MeterResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Creates a new route and assigns a group of meters to it\n     * \n     * @param body Data representing the route being created\n     */\n    public createRouteWithHttpInfo(body?: RouteRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<RouteResponse>> {\n        const path = this.basePath + '/api/v3/route';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<RouteResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Create meters on a particular place\n     * \n     * @param placeId The id of the place\n     * @param body The meters to create on the place\n     */\n    public createUtilityPlatformMetersByPlaceWithHttpInfo(placeId: number, body?: Array<CreateUtilityPlatformMeter>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<UtilityPlatformMeter>>> {\n        const path = this.basePath + '/api/v202203/utilityPlatform/place/${placeId}/meter'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling createUtilityPlatformMetersByPlace.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<UtilityPlatformMeter>>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * This endpoint allows the import of an ESA reading import file. The file should be a base64-encoded file with a UTF8 character set.\n     * \n     * @param body DTO containing the data to import and the profile that defines the structure.\n     */\n    public importEsaReadingWithProfileWithHttpInfo(body?: EsaReadingImportRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<DetailedGuidResponse>>> {\n        const path = this.basePath + '/api/v202407/import/esareading';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<DetailedGuidResponse>>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Create a new aggregate meter, update an existing version, create a new version If AggregateMeterId is null: a new aggregate meter and version is always created If AggregateMeterId is not null: it must exist and only associated with 1 account otherwise error If AggregateMeterId exists: we will always update the Aggregate&#39;s MeterInfo and AccountInfo If AggregateMeterId exists and no version exists on the same account and meter with the specified billing period: a new version is created If AggregateMeterId exists and a version exists on the same account and meter with the specified billing period: the version is updated\n     * \n     * @param placeId The id of the place to insert the aggregate meter\n     * @param body The release request details\n     */\n    public upsertAggregateMeterWithHttpInfo(placeId: number, body?: UpsertAggregateMeterRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CalculatedBillDetailsResponse>> {\n        const path = this.basePath + '/api/v202203/utilityPlatform/place/${placeId}/aggregateMeter'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling upsertAggregateMeter.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CalculatedBillDetailsResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsMetersDeletespanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Deletes a data point\n     * \n     * @param dataPointId The data point identifier\n     */\n    public deleteDataPoint(dataPointId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteDataPointWithHttpInfo(dataPointId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes an ESA channel\n     * \n     * @param esaChannelId The ESA channel identifier\n     */\n    public deleteEsaChannel(esaChannelId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteEsaChannelWithHttpInfo(esaChannelId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes an ESA reading import profile\n     * \n     * @param profileId The identifier of the profile to delete\n     */\n    public deleteEsaReadingImportProfile(profileId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteEsaReadingImportProfileWithHttpInfo(profileId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes a meter\n     * \n     * @param meterId The identifier for the meter being deleted\n     * @param deleteBills Should this cascade to delete any bills associated with this meter\n     */\n    public deleteMeter(meterId: number, deleteBills?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteMeterWithHttpInfo(meterId, deleteBills, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes a route\n     * \n     * @param id The identifier for the route being deleted\n     */\n    public deleteRoute(id: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteRouteWithHttpInfo(id, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Deletes a data point\n     * \n     * @param dataPointId The data point identifier\n     */\n    public deleteDataPointWithHttpInfo(dataPointId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202406/datapoint/${dataPointId}'\n                    .replace('${' + 'dataPointId' + '}', String(dataPointId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'dataPointId' is not null or undefined\n        if (dataPointId === null || dataPointId === undefined) {\n            throw new Error('Required parameter dataPointId was null or undefined when calling deleteDataPoint.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Deletes an ESA channel\n     * \n     * @param esaChannelId The ESA channel identifier\n     */\n    public deleteEsaChannelWithHttpInfo(esaChannelId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202406/esachannel/${esaChannelId}'\n                    .replace('${' + 'esaChannelId' + '}', String(esaChannelId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'esaChannelId' is not null or undefined\n        if (esaChannelId === null || esaChannelId === undefined) {\n            throw new Error('Required parameter esaChannelId was null or undefined when calling deleteEsaChannel.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Deletes an ESA reading import profile\n     * \n     * @param profileId The identifier of the profile to delete\n     */\n    public deleteEsaReadingImportProfileWithHttpInfo(profileId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202407/import/esareading/profile/${profileId}'\n                    .replace('${' + 'profileId' + '}', String(profileId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'profileId' is not null or undefined\n        if (profileId === null || profileId === undefined) {\n            throw new Error('Required parameter profileId was null or undefined when calling deleteEsaReadingImportProfile.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Deletes a meter\n     * \n     * @param meterId The identifier for the meter being deleted\n     * @param deleteBills Should this cascade to delete any bills associated with this meter\n     */\n    public deleteMeterWithHttpInfo(meterId: number, deleteBills?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling deleteMeter.');\n        }\n        if (deleteBills !== undefined) {\n            queryParameters = queryParameters.set('deleteBills', <any>deleteBills);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Deletes a route\n     * \n     * @param id The identifier for the route being deleted\n     */\n    public deleteRouteWithHttpInfo(id: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/route/${id}'\n                    .replace('${' + 'id' + '}', String(id));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'id' is not null or undefined\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling deleteRoute.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { AddressLookup } from '../model/addressLookup';\nimport { ChannelCreate } from '../model/channelCreate';\nimport { ChannelEdit } from '../model/channelEdit';\nimport { ChannelResponse } from '../model/channelResponse';\nimport { ChannelVersionWithBeginDateRequest } from '../model/channelVersionWithBeginDateRequest';\nimport { DataAccessRelease } from '../model/dataAccessRelease';\nimport { DataPointEdit } from '../model/dataPointEdit';\nimport { DataPointResponse } from '../model/dataPointResponse';\nimport { DataPointSentinel } from '../model/dataPointSentinel';\nimport { EmissionSourceLinkRequest } from '../model/emissionSourceLinkRequest';\nimport { EsaChannelCreate } from '../model/esaChannelCreate';\nimport { EsaChannelEdit } from '../model/esaChannelEdit';\nimport { EsaChannelResponse } from '../model/esaChannelResponse';\nimport { EsaChannelVersionCreateWithBeginDate } from '../model/esaChannelVersionCreateWithBeginDate';\nimport { EsaChannelVersionEdit } from '../model/esaChannelVersionEdit';\nimport { EsaChannelVersionResponse } from '../model/esaChannelVersionResponse';\nimport { EsaReadingImportProfileEdit } from '../model/esaReadingImportProfileEdit';\nimport { EsaReadingImportProfileResponse } from '../model/esaReadingImportProfileResponse';\nimport { MeterEdit } from '../model/meterEdit';\nimport { MeterResponse } from '../model/meterResponse';\nimport { MeterSearchRequest } from '../model/meterSearchRequest';\nimport { MeterSerialNumberHistoryRequest } from '../model/meterSerialNumberHistoryRequest';\nimport { MeterSerialNumberHistoryResponse } from '../model/meterSerialNumberHistoryResponse';\nimport { MoveCreateMeter } from '../model/moveCreateMeter';\nimport { OkObjectResult } from '../model/okObjectResult';\nimport { RouteMeter } from '../model/routeMeter';\nimport { RouteRequest } from '../model/routeRequest';\nimport { RouteResponse } from '../model/routeResponse';\nimport { SendDataAccessReleaseRequest } from '../model/sendDataAccessReleaseRequest';\nimport { UDFFieldChild } from '../model/uDFFieldChild';\nimport { UDFValue } from '../model/uDFValue';\nimport { UpdateResult } from '../model/updateResult';\nimport { WatticsDataPoint } from '../model/watticsDataPoint';\nimport { WatticsDataPointRequest } from '../model/watticsDataPointRequest';\nimport { WebhookCustomAction } from '../model/webhookCustomAction';\nimport { WebhookLogDetailsResponse } from '../model/webhookLogDetailsResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsMetersEditspanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Adds a meter to a route\n     * \n     * @param routeId The identifier for the route to add the meters to\n     * @param body Object representing meter to add to the route\n     */\n    public addMeter(routeId: number, body?: RouteMeter, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<RouteResponse> {\n        return this.addMeterWithHttpInfo(routeId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<RouteResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Turn a Meter into an ESA Calculated Meter This is only possible if the Meter has NO EsaChannels. A Primary Value ESAChannel will be created, according to the EsaChannelCreateDTO. It must be a Formula Channel. The formula is only permitted to reference other ESA Meters. The referenced Meters&#39; Primary Value Channels will be used in the formula calculation.\n     * \n     * @param meterId The identifier for the meter being converted to an ESA Calculated Meter\n     * @param body \n     */\n    public convertToEsaCalculatedMeter(meterId: number, body?: EsaChannelCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<MeterResponse> {\n        return this.convertToEsaCalculatedMeterWithHttpInfo(meterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<MeterResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Create a new channel version\n     * \n     * @param meterId Id of the meter the channel is linked to\n     * @param channelId Id of the channel to add the version to\n     * @param body \n     */\n    public createChannelVersion(meterId: number, channelId: number, body?: ChannelVersionWithBeginDateRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ChannelResponse> {\n        return this.createChannelVersionWithHttpInfo(meterId, channelId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ChannelResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Creates an ESA channel version for a specified ESA channel\n     * \n     * @param esaChannelId The ESA channel identifier\n     * @param body Data representing the ESA channel version being created\n     */\n    public createEsaChannelVersion(esaChannelId: number, body?: EsaChannelVersionCreateWithBeginDate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EsaChannelVersionResponse> {\n        return this.createEsaChannelVersionWithHttpInfo(esaChannelId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EsaChannelVersionResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Creates and assigns a channel to a meter\n     * \n     * @param meterId Id of the meter to link the channel to\n     * @param body Data representing the channel being created\n     */\n    public createMeterChannel(meterId: number, body?: ChannelCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ChannelResponse> {\n        return this.createMeterChannelWithHttpInfo(meterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ChannelResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete a channel version There must always be one version on a channel If you try and delete the only version on a channel an exception will occur\n     * \n     * @param meterId Id of the meter the channel is linked to\n     * @param channelId Id of the channel the version is linked to\n     * @param versionId Id of the channel version to delete\n     */\n    public deleteChannelVersion(meterId: number, channelId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteChannelVersionWithHttpInfo(meterId, channelId, versionId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes a meter&#39;s channel All readings linked to this channel will also be deleted. A channel that is part of a distribution cannot be deleted.\n     * \n     * @param meterId Id of the meter the channel is linked to\n     * @param channelId Id of the channel to delete\n     */\n    public deleteMeterChannel(meterId: number, channelId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteMeterChannelWithHttpInfo(meterId, channelId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Update a channel version\n     * \n     * @param meterId Id of the meter the channel is linked to\n     * @param channelId Id of the channel the version is linked to\n     * @param versionId Id of the channel version to update\n     * @param body \n     */\n    public editChannelVersion(meterId: number, channelId: number, versionId: number, body?: ChannelVersionWithBeginDateRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ChannelResponse> {\n        return this.editChannelVersionWithHttpInfo(meterId, channelId, versionId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ChannelResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits a data point\n     * \n     * @param dataPointId The data point identifier\n     * @param body Data representing the data point being edited\n     */\n    public editDataPoint(dataPointId: number, body?: DataPointEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<DataPointResponse> {\n        return this.editDataPointWithHttpInfo(dataPointId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<DataPointResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit emission source data on a meter\n     * \n     * @param meterId The meter identifier for the meter to edit\n     * @param body Emission Source data to assign to the meter\n     */\n    public editEmissionSourceLink(meterId: number, body?: EmissionSourceLinkRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EmissionSourceLinkRequest> {\n        return this.editEmissionSourceLinkWithHttpInfo(meterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EmissionSourceLinkRequest>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits an ESA channel\n     * \n     * @param esaChannelId The ESA channel identifier\n     * @param body Data representing the ESA channel being edited\n     */\n    public editEsaChannel(esaChannelId: number, body?: EsaChannelEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EsaChannelResponse> {\n        return this.editEsaChannelWithHttpInfo(esaChannelId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EsaChannelResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits an ESA channel version for a specified ESA channel\n     * \n     * @param esaChannelId The ESA channel identifier\n     * @param versionId The ESA channel version identifier\n     * @param body Data representing the ESA channel version being edited\n     */\n    public editEsaChannelVersion(esaChannelId: number, versionId: number, body?: EsaChannelVersionEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EsaChannelVersionResponse> {\n        return this.editEsaChannelVersionWithHttpInfo(esaChannelId, versionId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EsaChannelVersionResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits an ESA reading import profile\n     * \n     * @param profileId The identifier of the profile to edit\n     * @param body Object containing settings for the profile\n     */\n    public editEsaReadingImportProfile(profileId: number, body?: EsaReadingImportProfileEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EsaReadingImportProfileResponse> {\n        return this.editEsaReadingImportProfileWithHttpInfo(profileId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EsaReadingImportProfileResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Updates a meter&#39;s channel If a channel version exists and is not passed into the request body it will continue to exist and no data will be changed. To delete a specific channel version call DELETE meter/{meterId}/channel/{channelId}/version/{versionId}\n     * \n     * @param meterId Id of the meter the channel is linked to\n     * @param channelId Id of the channel to update\n     * @param body \n     */\n    public editMeterChannel(meterId: number, channelId: number, body?: ChannelEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ChannelResponse> {\n        return this.editMeterChannelWithHttpInfo(meterId, channelId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ChannelResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * \n     * \n     * @param meterId \n     * @param body \n     */\n    public editMeterSerialNumberVersion(meterId: number, body?: MeterSerialNumberHistoryRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<MeterSerialNumberHistoryResponse> {\n        return this.editMeterSerialNumberVersionWithHttpInfo(meterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<MeterSerialNumberHistoryResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits user defined field / custom field values for a particular meter\n     * \n     * @param meterId The identifier for the meter\n     * @param body Data representing the meter user defined fields / custom fields being edited\n     */\n    public editMeterUDFs(meterId: number, body?: Array<UDFValue>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<UDFFieldChild>> {\n        return this.editMeterUDFsWithHttpInfo(meterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<UDFFieldChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits a meter - unlike the original v3 EditMeter API, the meter use unit will be removed if it is null\n     * \n     * @param meterId The meter identifier for the meter being edited\n     * @param body Data representing the meter being edited\n     */\n    public editMeterWithUnits(meterId: number, body?: MeterEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<MeterResponse> {\n        return this.editMeterWithUnitsWithHttpInfo(meterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<MeterResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits a route\n     * \n     * @param id The identifier for the route being edited\n     * @param body Data representing the route being edited\n     */\n    public editRoute(id: number, body?: RouteRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<RouteResponse> {\n        return this.editRouteWithHttpInfo(id, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<RouteResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit SmartAnalytics (Wattics) data on a meter\n     * \n     * @param meterId The meter identifier for the meter to edit\n     * @param body Identifier for the SmartAnaltyics data point to assign to the meter\n     */\n    public editWatticsDataPointLink(meterId: number, body?: WatticsDataPointRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<WatticsDataPoint> {\n        return this.editWatticsDataPointLinkWithHttpInfo(meterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<WatticsDataPoint>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits the data point sentinel configuration\n     * \n     * @param dataPointId \n     * @param body The data point identifier\n     */\n    public enableSentinel(dataPointId: number, body?: DataPointSentinel, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<DataPointResponse> {\n        return this.enableSentinelWithHttpInfo(dataPointId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<DataPointResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get data access release details\n     * \n     * @param dataAccessReleaseId The id of the data access release\n     */\n    public getDataAccessReleaseDetails(dataAccessReleaseId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<DataAccessRelease> {\n        return this.getDataAccessReleaseDetailsWithHttpInfo(dataAccessReleaseId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<DataAccessRelease>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Move list of meters to be under parentPlaceId\n     * \n     * @param parentPlaceId The identifier for the new parent place\n     * @param body List of meterIds to move under the parentPlaceId\n     */\n    public moveMeter(parentPlaceId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UpdateResult> {\n        return this.moveMeterWithHttpInfo(parentPlaceId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UpdateResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Fires a custom meter action. Custom meter actions are setup as webhooks\n     * \n     * @param body \n     */\n    public processMeterCustomAction(body?: WebhookCustomAction, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<WebhookLogDetailsResponse> {\n        return this.processMeterCustomActionWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<WebhookLogDetailsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Removes a meter from a route\n     * \n     * @param routeId The identifier for the route the meter is being remove from\n     * @param meterId The identifier for the meter being removed\n     */\n    public removeMeter(routeId: number, meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.removeMeterWithHttpInfo(routeId, meterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Search utility platform meters\n     * \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     * @param body The meter search criteria\n     */\n    public searchUtilityPlatformMeters(pageSize?: number, pageNumber?: number, body?: MeterSearchRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MoveCreateMeter>> {\n        return this.searchUtilityPlatformMetersWithHttpInfo(pageSize, pageNumber, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MoveCreateMeter>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Search service addresses\n     * \n     * @param address The address fragment to search for\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public searchUtilityPlatformServiceAddresses(address?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<AddressLookup>> {\n        return this.searchUtilityPlatformServiceAddressesWithHttpInfo(address, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<AddressLookup>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Email a data access release request\n     * \n     * @param meterId The meter that the release is for\n     * @param body The release request details\n     */\n    public sendDataAccessReleaseRequestEmail(meterId: number, body?: SendDataAccessReleaseRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.sendDataAccessReleaseRequestEmailWithHttpInfo(meterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Adds a meter to a route\n     * \n     * @param routeId The identifier for the route to add the meters to\n     * @param body Object representing meter to add to the route\n     */\n    public addMeterWithHttpInfo(routeId: number, body?: RouteMeter, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<RouteResponse>> {\n        const path = this.basePath + '/api/v3/route/${routeId}/meter'\n                    .replace('${' + 'routeId' + '}', String(routeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'routeId' is not null or undefined\n        if (routeId === null || routeId === undefined) {\n            throw new Error('Required parameter routeId was null or undefined when calling addMeter.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<RouteResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Turn a Meter into an ESA Calculated Meter This is only possible if the Meter has NO EsaChannels. A Primary Value ESAChannel will be created, according to the EsaChannelCreateDTO. It must be a Formula Channel. The formula is only permitted to reference other ESA Meters. The referenced Meters&#39; Primary Value Channels will be used in the formula calculation.\n     * \n     * @param meterId The identifier for the meter being converted to an ESA Calculated Meter\n     * @param body \n     */\n    public convertToEsaCalculatedMeterWithHttpInfo(meterId: number, body?: EsaChannelCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<MeterResponse>> {\n        const path = this.basePath + '/api/v202510/meter/${meterId}/convertToEsaCalculatedMeter'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling convertToEsaCalculatedMeter.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<MeterResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Create a new channel version\n     * \n     * @param meterId Id of the meter the channel is linked to\n     * @param channelId Id of the channel to add the version to\n     * @param body \n     */\n    public createChannelVersionWithHttpInfo(meterId: number, channelId: number, body?: ChannelVersionWithBeginDateRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ChannelResponse>> {\n        const path = this.basePath + '/api/v202101/meter/${meterId}/channel/${channelId}/version'\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'channelId' + '}', String(channelId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling createChannelVersion.');\n        }\n        // verify required parameter 'channelId' is not null or undefined\n        if (channelId === null || channelId === undefined) {\n            throw new Error('Required parameter channelId was null or undefined when calling createChannelVersion.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ChannelResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Creates an ESA channel version for a specified ESA channel\n     * \n     * @param esaChannelId The ESA channel identifier\n     * @param body Data representing the ESA channel version being created\n     */\n    public createEsaChannelVersionWithHttpInfo(esaChannelId: number, body?: EsaChannelVersionCreateWithBeginDate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EsaChannelVersionResponse>> {\n        const path = this.basePath + '/api/v202406/esachannel/${esaChannelId}/version'\n                    .replace('${' + 'esaChannelId' + '}', String(esaChannelId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'esaChannelId' is not null or undefined\n        if (esaChannelId === null || esaChannelId === undefined) {\n            throw new Error('Required parameter esaChannelId was null or undefined when calling createEsaChannelVersion.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EsaChannelVersionResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Creates and assigns a channel to a meter\n     * \n     * @param meterId Id of the meter to link the channel to\n     * @param body Data representing the channel being created\n     */\n    public createMeterChannelWithHttpInfo(meterId: number, body?: ChannelCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ChannelResponse>> {\n        const path = this.basePath + '/api/v202101/meter/${meterId}/channel'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling createMeterChannel.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ChannelResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Delete a channel version There must always be one version on a channel If you try and delete the only version on a channel an exception will occur\n     * \n     * @param meterId Id of the meter the channel is linked to\n     * @param channelId Id of the channel the version is linked to\n     * @param versionId Id of the channel version to delete\n     */\n    public deleteChannelVersionWithHttpInfo(meterId: number, channelId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202101/meter/${meterId}/channel/${channelId}/version/${versionId}'\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'channelId' + '}', String(channelId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling deleteChannelVersion.');\n        }\n        // verify required parameter 'channelId' is not null or undefined\n        if (channelId === null || channelId === undefined) {\n            throw new Error('Required parameter channelId was null or undefined when calling deleteChannelVersion.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling deleteChannelVersion.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Deletes a meter&#39;s channel All readings linked to this channel will also be deleted. A channel that is part of a distribution cannot be deleted.\n     * \n     * @param meterId Id of the meter the channel is linked to\n     * @param channelId Id of the channel to delete\n     */\n    public deleteMeterChannelWithHttpInfo(meterId: number, channelId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202101/meter/${meterId}/channel/${channelId}'\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'channelId' + '}', String(channelId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling deleteMeterChannel.');\n        }\n        // verify required parameter 'channelId' is not null or undefined\n        if (channelId === null || channelId === undefined) {\n            throw new Error('Required parameter channelId was null or undefined when calling deleteMeterChannel.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Update a channel version\n     * \n     * @param meterId Id of the meter the channel is linked to\n     * @param channelId Id of the channel the version is linked to\n     * @param versionId Id of the channel version to update\n     * @param body \n     */\n    public editChannelVersionWithHttpInfo(meterId: number, channelId: number, versionId: number, body?: ChannelVersionWithBeginDateRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ChannelResponse>> {\n        const path = this.basePath + '/api/v202101/meter/${meterId}/channel/${channelId}/version/${versionId}'\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'channelId' + '}', String(channelId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling editChannelVersion.');\n        }\n        // verify required parameter 'channelId' is not null or undefined\n        if (channelId === null || channelId === undefined) {\n            throw new Error('Required parameter channelId was null or undefined when calling editChannelVersion.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling editChannelVersion.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ChannelResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edits a data point\n     * \n     * @param dataPointId The data point identifier\n     * @param body Data representing the data point being edited\n     */\n    public editDataPointWithHttpInfo(dataPointId: number, body?: DataPointEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<DataPointResponse>> {\n        const path = this.basePath + '/api/v202406/datapoint/${dataPointId}'\n                    .replace('${' + 'dataPointId' + '}', String(dataPointId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'dataPointId' is not null or undefined\n        if (dataPointId === null || dataPointId === undefined) {\n            throw new Error('Required parameter dataPointId was null or undefined when calling editDataPoint.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<DataPointResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edit emission source data on a meter\n     * \n     * @param meterId The meter identifier for the meter to edit\n     * @param body Emission Source data to assign to the meter\n     */\n    public editEmissionSourceLinkWithHttpInfo(meterId: number, body?: EmissionSourceLinkRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EmissionSourceLinkRequest>> {\n        const path = this.basePath + '/api/v202307/meter/${meterId}/emissionSource'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling editEmissionSourceLink.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EmissionSourceLinkRequest>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edits an ESA channel\n     * \n     * @param esaChannelId The ESA channel identifier\n     * @param body Data representing the ESA channel being edited\n     */\n    public editEsaChannelWithHttpInfo(esaChannelId: number, body?: EsaChannelEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EsaChannelResponse>> {\n        const path = this.basePath + '/api/v202406/esachannel/${esaChannelId}'\n                    .replace('${' + 'esaChannelId' + '}', String(esaChannelId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'esaChannelId' is not null or undefined\n        if (esaChannelId === null || esaChannelId === undefined) {\n            throw new Error('Required parameter esaChannelId was null or undefined when calling editEsaChannel.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EsaChannelResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edits an ESA channel version for a specified ESA channel\n     * \n     * @param esaChannelId The ESA channel identifier\n     * @param versionId The ESA channel version identifier\n     * @param body Data representing the ESA channel version being edited\n     */\n    public editEsaChannelVersionWithHttpInfo(esaChannelId: number, versionId: number, body?: EsaChannelVersionEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EsaChannelVersionResponse>> {\n        const path = this.basePath + '/api/v202406/esachannel/${esaChannelId}/version/${versionId}'\n                    .replace('${' + 'esaChannelId' + '}', String(esaChannelId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'esaChannelId' is not null or undefined\n        if (esaChannelId === null || esaChannelId === undefined) {\n            throw new Error('Required parameter esaChannelId was null or undefined when calling editEsaChannelVersion.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling editEsaChannelVersion.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EsaChannelVersionResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edits an ESA reading import profile\n     * \n     * @param profileId The identifier of the profile to edit\n     * @param body Object containing settings for the profile\n     */\n    public editEsaReadingImportProfileWithHttpInfo(profileId: number, body?: EsaReadingImportProfileEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EsaReadingImportProfileResponse>> {\n        const path = this.basePath + '/api/v202407/import/esareading/profile/${profileId}'\n                    .replace('${' + 'profileId' + '}', String(profileId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'profileId' is not null or undefined\n        if (profileId === null || profileId === undefined) {\n            throw new Error('Required parameter profileId was null or undefined when calling editEsaReadingImportProfile.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EsaReadingImportProfileResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Updates a meter&#39;s channel If a channel version exists and is not passed into the request body it will continue to exist and no data will be changed. To delete a specific channel version call DELETE meter/{meterId}/channel/{channelId}/version/{versionId}\n     * \n     * @param meterId Id of the meter the channel is linked to\n     * @param channelId Id of the channel to update\n     * @param body \n     */\n    public editMeterChannelWithHttpInfo(meterId: number, channelId: number, body?: ChannelEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ChannelResponse>> {\n        const path = this.basePath + '/api/v202101/meter/${meterId}/channel/${channelId}'\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'channelId' + '}', String(channelId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling editMeterChannel.');\n        }\n        // verify required parameter 'channelId' is not null or undefined\n        if (channelId === null || channelId === undefined) {\n            throw new Error('Required parameter channelId was null or undefined when calling editMeterChannel.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ChannelResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * \n     * \n     * @param meterId \n     * @param body \n     */\n    public editMeterSerialNumberVersionWithHttpInfo(meterId: number, body?: MeterSerialNumberHistoryRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<MeterSerialNumberHistoryResponse>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/serialnumberversion'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling editMeterSerialNumberVersion.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<MeterSerialNumberHistoryResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edits user defined field / custom field values for a particular meter\n     * \n     * @param meterId The identifier for the meter\n     * @param body Data representing the meter user defined fields / custom fields being edited\n     */\n    public editMeterUDFsWithHttpInfo(meterId: number, body?: Array<UDFValue>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<UDFFieldChild>>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/udf'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling editMeterUDFs.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<UDFFieldChild>>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edits a meter - unlike the original v3 EditMeter API, the meter use unit will be removed if it is null\n     * \n     * @param meterId The meter identifier for the meter being edited\n     * @param body Data representing the meter being edited\n     */\n    public editMeterWithUnitsWithHttpInfo(meterId: number, body?: MeterEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<MeterResponse>> {\n        const path = this.basePath + '/api/v202307/meter/${meterId}'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling editMeterWithUnits.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<MeterResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edits a route\n     * \n     * @param id The identifier for the route being edited\n     * @param body Data representing the route being edited\n     */\n    public editRouteWithHttpInfo(id: number, body?: RouteRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<RouteResponse>> {\n        const path = this.basePath + '/api/v3/route/${id}'\n                    .replace('${' + 'id' + '}', String(id));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'id' is not null or undefined\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling editRoute.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<RouteResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edit SmartAnalytics (Wattics) data on a meter\n     * \n     * @param meterId The meter identifier for the meter to edit\n     * @param body Identifier for the SmartAnaltyics data point to assign to the meter\n     */\n    public editWatticsDataPointLinkWithHttpInfo(meterId: number, body?: WatticsDataPointRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<WatticsDataPoint>> {\n        const path = this.basePath + '/api/v202302/meter/${meterId}/watticsDataPoint'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling editWatticsDataPointLink.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<WatticsDataPoint>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edits the data point sentinel configuration\n     * \n     * @param dataPointId \n     * @param body The data point identifier\n     */\n    public enableSentinelWithHttpInfo(dataPointId: number, body?: DataPointSentinel, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<DataPointResponse>> {\n        const path = this.basePath + '/api/v202406/datapoint/${dataPointId}/sentinel'\n                    .replace('${' + 'dataPointId' + '}', String(dataPointId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'dataPointId' is not null or undefined\n        if (dataPointId === null || dataPointId === undefined) {\n            throw new Error('Required parameter dataPointId was null or undefined when calling enableSentinel.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<DataPointResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Get data access release details\n     * \n     * @param dataAccessReleaseId The id of the data access release\n     */\n    public getDataAccessReleaseDetailsWithHttpInfo(dataAccessReleaseId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<DataAccessRelease>> {\n        const path = this.basePath + '/api/v202203/utilityPlatform/dataAccessRelease/${dataAccessReleaseId}'\n                    .replace('${' + 'dataAccessReleaseId' + '}', String(dataAccessReleaseId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'dataAccessReleaseId' is not null or undefined\n        if (dataAccessReleaseId === null || dataAccessReleaseId === undefined) {\n            throw new Error('Required parameter dataAccessReleaseId was null or undefined when calling getDataAccessReleaseDetails.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<DataAccessRelease>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Move list of meters to be under parentPlaceId\n     * \n     * @param parentPlaceId The identifier for the new parent place\n     * @param body List of meterIds to move under the parentPlaceId\n     */\n    public moveMeterWithHttpInfo(parentPlaceId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UpdateResult>> {\n        const path = this.basePath + '/api/v3/parentPlace/${parentPlaceId}/meter'\n                    .replace('${' + 'parentPlaceId' + '}', String(parentPlaceId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'parentPlaceId' is not null or undefined\n        if (parentPlaceId === null || parentPlaceId === undefined) {\n            throw new Error('Required parameter parentPlaceId was null or undefined when calling moveMeter.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UpdateResult>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Fires a custom meter action. Custom meter actions are setup as webhooks\n     * \n     * @param body \n     */\n    public processMeterCustomActionWithHttpInfo(body?: WebhookCustomAction, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<WebhookLogDetailsResponse>> {\n        const path = this.basePath + '/api/v202211/meter/customAction';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<WebhookLogDetailsResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Removes a meter from a route\n     * \n     * @param routeId The identifier for the route the meter is being remove from\n     * @param meterId The identifier for the meter being removed\n     */\n    public removeMeterWithHttpInfo(routeId: number, meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/route/${routeId}/meter/${meterId}'\n                    .replace('${' + 'routeId' + '}', String(routeId))\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'routeId' is not null or undefined\n        if (routeId === null || routeId === undefined) {\n            throw new Error('Required parameter routeId was null or undefined when calling removeMeter.');\n        }\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling removeMeter.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Search utility platform meters\n     * \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     * @param body The meter search criteria\n     */\n    public searchUtilityPlatformMetersWithHttpInfo(pageSize?: number, pageNumber?: number, body?: MeterSearchRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MoveCreateMeter>>> {\n        const path = this.basePath + '/api/v202203/utilityPlatform/meter/search';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MoveCreateMeter>>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Search service addresses\n     * \n     * @param address The address fragment to search for\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public searchUtilityPlatformServiceAddressesWithHttpInfo(address?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<AddressLookup>>> {\n        const path = this.basePath + '/api/v202203/utilityPlatform/address/search';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (address !== undefined) {\n            queryParameters = queryParameters.set('address', <any>address);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<AddressLookup>>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Email a data access release request\n     * \n     * @param meterId The meter that the release is for\n     * @param body The release request details\n     */\n    public sendDataAccessReleaseRequestEmailWithHttpInfo(meterId: number, body?: SendDataAccessReleaseRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202203/utilityPlatform/meter/${meterId}/sendDataAccessReleaseRequest'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling sendDataAccessReleaseRequestEmail.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Post, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { AdjustedCostTypeResponse } from '../model/adjustedCostTypeResponse';\nimport { BillSplitParentDetailsResponse } from '../model/billSplitParentDetailsResponse';\nimport { CalculatedBillCostResponse } from '../model/calculatedBillCostResponse';\nimport { CalculatedBillDemandResponse } from '../model/calculatedBillDemandResponse';\nimport { CalculatedBillDetailsResponse } from '../model/calculatedBillDetailsResponse';\nimport { CalculatedBillUseResponse } from '../model/calculatedBillUseResponse';\nimport { ChannelResponse } from '../model/channelResponse';\nimport { CostAvoidanceTask } from '../model/costAvoidanceTask';\nimport { DataPointResponse } from '../model/dataPointResponse';\nimport { DistributionVersionResponse } from '../model/distributionVersionResponse';\nimport { EsaChannelResponse } from '../model/esaChannelResponse';\nimport { EsaChannelVersionResponse } from '../model/esaChannelVersionResponse';\nimport { EsaReadingImportProfileResponse } from '../model/esaReadingImportProfileResponse';\nimport { GHGFactorsResponse } from '../model/gHGFactorsResponse';\nimport { GHGSettingResponse } from '../model/gHGSettingResponse';\nimport { GenericBodylineResponse } from '../model/genericBodylineResponse';\nimport { MeterCalendarizedUseVsWeatherResponse } from '../model/meterCalendarizedUseVsWeatherResponse';\nimport { MeterDigestActualAndCalendarizedMonthlyResponse } from '../model/meterDigestActualAndCalendarizedMonthlyResponse';\nimport { MeterDigestActualAndCalendarizedYearlyResponse } from '../model/meterDigestActualAndCalendarizedYearlyResponse';\nimport { MeterDigestCalendarizedTrendResponse } from '../model/meterDigestCalendarizedTrendResponse';\nimport { MeterDigestNormalizedMonthlyResponse } from '../model/meterDigestNormalizedMonthlyResponse';\nimport { MeterDigestNormalizedYearlyResponse } from '../model/meterDigestNormalizedYearlyResponse';\nimport { MeterDigestSavingsMonthlyResponse } from '../model/meterDigestSavingsMonthlyResponse';\nimport { MeterDigestSavingsYearlyResponse } from '../model/meterDigestSavingsYearlyResponse';\nimport { MeterGroupResponse } from '../model/meterGroupResponse';\nimport { MeterRateResponse } from '../model/meterRateResponse';\nimport { MeterResponse } from '../model/meterResponse';\nimport { MeterTemplateResponse } from '../model/meterTemplateResponse';\nimport { MeterUDFResponse } from '../model/meterUDFResponse';\nimport { Readings } from '../model/readings';\nimport { RouteDetailsResponse } from '../model/routeDetailsResponse';\nimport { RouteMeterChannelLatestReadingResponse } from '../model/routeMeterChannelLatestReadingResponse';\nimport { RouteResponse } from '../model/routeResponse';\nimport { SavingsMeterBillDailyResponse } from '../model/savingsMeterBillDailyResponse';\nimport { SavingsMeterBillResponse } from '../model/savingsMeterBillResponse';\nimport { SpecialAdjustmentMethod } from '../model/specialAdjustmentMethod';\nimport { SpecialAdjustmentType } from '../model/specialAdjustmentType';\nimport { UDFFieldChild } from '../model/uDFFieldChild';\nimport { UtilityPlatformMeter } from '../model/utilityPlatformMeter';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsMetersViewspanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Download file for a channel version custom field\n     * \n     * @param meterId \n     * @param channelId \n     * @param versionId \n     * @param udfId \n     */\n    public downloadChannelVersionCustomFieldFile(meterId: number, channelId: number, versionId: number, udfId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.downloadChannelVersionCustomFieldFileWithHttpInfo(meterId, channelId, versionId, udfId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Download file for a meter custom field\n     * \n     * @param meterId \n     * @param udfId \n     */\n    public downloadMeterCustomFieldFile(meterId: number, udfId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.downloadMeterCustomFieldFileWithHttpInfo(meterId, udfId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get calculated bill account line items\n     * \n     * @param accountId ID of the account to receive calculated bill details\n     * @param meterId ID of the meter to receive calculated bill details\n     * @param versionId ID of the calculated bill distribution version\n     */\n    public getAccountLineItems(accountId: number, meterId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<GenericBodylineResponse>> {\n        return this.getAccountLineItemsWithHttpInfo(accountId, meterId, versionId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<GenericBodylineResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get calculated cost details\n     * \n     * @param accountId ID of the account to receive calculated bill details\n     * @param meterId ID of the meter to receive calculated bill details\n     * @param versionId ID of the calculated bill distribution version\n     */\n    public getCalculateBillCost(accountId: number, meterId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CalculatedBillCostResponse> {\n        return this.getCalculateBillCostWithHttpInfo(accountId, meterId, versionId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CalculatedBillCostResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get calculated demand details\n     * \n     * @param accountId ID of the account to receive calculated bill details\n     * @param meterId ID of the meter to receive calculated bill details\n     * @param versionId ID of the calculated bill distribution version\n     */\n    public getCalculateBillDemand(accountId: number, meterId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CalculatedBillDemandResponse> {\n        return this.getCalculateBillDemandWithHttpInfo(accountId, meterId, versionId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CalculatedBillDemandResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * All details related to calculated bill setup including use, cost, meter line items, and account line items\n     * \n     * @param accountId ID of the account to receive calculated bill details\n     * @param meterId ID of the meter to receive calculated bill details\n     * @param versionId ID of the calculated bill distribution version\n     */\n    public getCalculateBillDetails(accountId: number, meterId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CalculatedBillDetailsResponse> {\n        return this.getCalculateBillDetailsWithHttpInfo(accountId, meterId, versionId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CalculatedBillDetailsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get calculated use details\n     * \n     * @param accountId ID of the account to receive calculated bill details\n     * @param meterId ID of the meter to receive calculated bill details\n     * @param versionId ID of the calculated bill distribution version\n     */\n    public getCalculateBillUse(accountId: number, meterId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CalculatedBillUseResponse> {\n        return this.getCalculateBillUseWithHttpInfo(accountId, meterId, versionId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CalculatedBillUseResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a list of calculated bill versions on this account and meter relationship\n     * \n     * @param accountId ID of the account to get all assigned calculated bill versions\n     * @param meterId ID of the meter to get all assigned calculated bill versions\n     */\n    public getCalculatedBillVersionHistory(accountId: number, meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<DistributionVersionResponse>> {\n        return this.getCalculatedBillVersionHistoryWithHttpInfo(accountId, meterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<DistributionVersionResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a list of calculated bill versions on a meter\n     * \n     * @param meterId ID of the meter to get all assigned calculated bill versions\n     */\n    public getCalculatedBills(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<DistributionVersionResponse>> {\n        return this.getCalculatedBillsWithHttpInfo(meterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<DistributionVersionResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get calendarized Use vs Weather data\n     * \n     * @param meterId The meter identifier\n     */\n    public getCalendarizedUseVsWeatherData(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MeterCalendarizedUseVsWeatherResponse>> {\n        return this.getCalendarizedUseVsWeatherDataWithHttpInfo(meterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MeterCalendarizedUseVsWeatherResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all data points\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getDataPoints(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<DataPointResponse>> {\n        return this.getDataPointsWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<DataPointResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves an ESA channel\n     * \n     * @param esaChannelId The ESA channel identifier\n     */\n    public getEsaChannel(esaChannelId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EsaChannelResponse> {\n        return this.getEsaChannelWithHttpInfo(esaChannelId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EsaChannelResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves an ESA channel version for a specified ESA channel\n     * \n     * @param esaChannelId The ESA channel identifier\n     * @param versionId The ESA channel version identifier\n     */\n    public getEsaChannelVersion(esaChannelId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EsaChannelVersionResponse> {\n        return this.getEsaChannelVersionWithHttpInfo(esaChannelId, versionId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EsaChannelVersionResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all ESA channel version for a specified ESA channel\n     * \n     * @param esaChannelId \n     */\n    public getEsaChannelVersions(esaChannelId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<EsaChannelVersionResponse>> {\n        return this.getEsaChannelVersionsWithHttpInfo(esaChannelId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<EsaChannelVersionResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves a filtered list of ESA Channels.\n     * \n     * @param filter \n     * @param orderBy \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getEsaChannels(filter?: string, orderBy?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<EsaChannelResponse>> {\n        return this.getEsaChannelsWithHttpInfo(filter, orderBy, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<EsaChannelResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Gets an ESA reading import profile\n     * \n     * @param profileId \n     */\n    public getEsaReadingImportProfile(profileId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EsaReadingImportProfileResponse> {\n        return this.getEsaReadingImportProfileWithHttpInfo(profileId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EsaReadingImportProfileResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get all ESA reading import profiles\n     * \n     */\n    public getEsaReadingImportProfiles(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<EsaReadingImportProfileResponse>> {\n        return this.getEsaReadingImportProfilesWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<EsaReadingImportProfileResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get the ghg meter factors\n     * \n     * @param meterId The meter identifier for ghg factors are being retrieved\n     */\n    public getGHGMeterFactors(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<GHGFactorsResponse>> {\n        return this.getGHGMeterFactorsWithHttpInfo(meterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<GHGFactorsResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves one meter\n     * \n     * @param meterId The meter identifier for the meter being retrieved\n     */\n    public getMeter(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<MeterResponse> {\n        return this.getMeterWithHttpInfo(meterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<MeterResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up actual billing data for a given meter for a given range of months- Result includes cost, use, unit cost on a monthly basis.\n     * \n     * @param meterId The identifier for the meter being retrieved\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for actual and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     */\n    public getMeterActualMonthly(meterId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<MeterDigestActualAndCalendarizedMonthlyResponse> {\n        return this.getMeterActualMonthlyWithHttpInfo(meterId, numberOfYears, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<MeterDigestActualAndCalendarizedMonthlyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by meter for a given range of months- Result includes cost, use, unit cost on a monthly basis.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for actual and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMeterActualMonthlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MeterDigestActualAndCalendarizedMonthlyResponse>> {\n        return this.getMeterActualMonthlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MeterDigestActualAndCalendarizedMonthlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up actual billing data for a given meter for a given range of years- Result includes cost, use, unit cost on an yearly basis.\n     * \n     * @param meterId The identifier for the meter being retrieved\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     */\n    public getMeterActualYearly(meterId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<MeterDigestActualAndCalendarizedYearlyResponse> {\n        return this.getMeterActualYearlyWithHttpInfo(meterId, numberOfYears, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<MeterDigestActualAndCalendarizedYearlyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up billing data by meter for a given range of years- Result includes cost, use, unit cost on an yearly basis.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMeterActualYearlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MeterDigestActualAndCalendarizedYearlyResponse>> {\n        return this.getMeterActualYearlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MeterDigestActualAndCalendarizedYearlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get bill split parent information for a meter\n     * \n     * @param meterId ID of the meter\n     */\n    public getMeterBillSplitParentDetails(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<BillSplitParentDetailsResponse>> {\n        return this.getMeterBillSplitParentDetailsWithHttpInfo(meterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<BillSplitParentDetailsResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up calendarized billing data for a given meter for a given range of months- Result includes cost, use, unit cost on a monthly basis.\n     * \n     * @param meterId The identifier for the meter being retrieved\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for actual and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     */\n    public getMeterCalendarizedMonthly(meterId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<MeterDigestActualAndCalendarizedMonthlyResponse> {\n        return this.getMeterCalendarizedMonthlyWithHttpInfo(meterId, numberOfYears, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<MeterDigestActualAndCalendarizedMonthlyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up calendarized billing data by meter for a given range of months- Result includes cost, use, unit cost on a monthly basis.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for actual and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMeterCalendarizedMonthlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MeterDigestActualAndCalendarizedMonthlyResponse>> {\n        return this.getMeterCalendarizedMonthlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MeterDigestActualAndCalendarizedMonthlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up calendarized billing data for a given meter for a given range of months- Result includes cost, use, unit cost on a monthly basis.\n     * \n     * @param meterId The identifier for the meter being retrieved\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for actual and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     */\n    public getMeterCalendarizedTrend(meterId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<MeterDigestCalendarizedTrendResponse> {\n        return this.getMeterCalendarizedTrendWithHttpInfo(meterId, numberOfYears, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<MeterDigestCalendarizedTrendResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up calendarized billing data for a given meter for a given range of years- Result includes cost, use, unit cost on an yearly basis.\n     * \n     * @param meterId The identifier for the meter being retrieved\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     */\n    public getMeterCalendarizedYearly(meterId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<MeterDigestActualAndCalendarizedYearlyResponse> {\n        return this.getMeterCalendarizedYearlyWithHttpInfo(meterId, numberOfYears, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<MeterDigestActualAndCalendarizedYearlyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up calendarized data by meter for a given range of years- Result includes cost, use, unit cost on an yearly basis.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMeterCalendarizedYearlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MeterDigestActualAndCalendarizedYearlyResponse>> {\n        return this.getMeterCalendarizedYearlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MeterDigestActualAndCalendarizedYearlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves a channel and its channel versions linked to a meter\n     * \n     * @param meterId Id of the linked meter to retrieve the channel information for\n     * @param channelId Id of the channel to retrieve information for\n     */\n    public getMeterChannel(meterId: number, channelId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ChannelResponse> {\n        return this.getMeterChannelWithHttpInfo(meterId, channelId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ChannelResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all channel and channel versions linked to a meter\n     * \n     * @param meterId Id of the meter to retrieve the channel information for\n     */\n    public getMeterChannels(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<ChannelResponse>> {\n        return this.getMeterChannelsWithHttpInfo(meterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<ChannelResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get the configured GHG scope category and factor for a meter. GHG License is required to call this endpoint.\n     * \n     * @param meterId The meter to retrieve settings for\n     */\n    public getMeterGHGSettings(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<GHGSettingResponse> {\n        return this.getMeterGHGSettingsWithHttpInfo(meterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<GHGSettingResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all Meter Groups for a particular meter\n     * \n     * @param meterId The meter identifier for which group values are being retrieved\n     */\n    public getMeterGroups(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MeterGroupResponse>> {\n        return this.getMeterGroupsWithHttpInfo(meterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MeterGroupResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get calculated bill meter line items\n     * \n     * @param accountId ID of the account to receive calculated bill details\n     * @param meterId ID of the meter to receive calculated bill details\n     * @param versionId ID of the calculated bill distribution version\n     */\n    public getMeterLineItems(accountId: number, meterId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<GenericBodylineResponse>> {\n        return this.getMeterLineItemsWithHttpInfo(accountId, meterId, versionId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<GenericBodylineResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up normalized billing data for a given meter for a given range of months- Result includes cost, use, unit cost on a monthly basis.\n     * \n     * @param meterId The identifier for the meter being retrieved\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for actual and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     */\n    public getMeterNormalizedMonthly(meterId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<MeterDigestNormalizedMonthlyResponse> {\n        return this.getMeterNormalizedMonthlyWithHttpInfo(meterId, numberOfYears, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<MeterDigestNormalizedMonthlyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up normalized billing data by meter for a given range of months- Result includes cost, use, unit cost on a monthly basis.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for actual and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMeterNormalizedMonthlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MeterDigestNormalizedMonthlyResponse>> {\n        return this.getMeterNormalizedMonthlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MeterDigestNormalizedMonthlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up normalized billing data for a given meter for a given range of years- Result includes cost, use, unit cost on an yearly basis.\n     * \n     * @param meterId The identifier for the meter being retrieved\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     */\n    public getMeterNormalizedYearly(meterId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<MeterDigestNormalizedYearlyResponse> {\n        return this.getMeterNormalizedYearlyWithHttpInfo(meterId, numberOfYears, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<MeterDigestNormalizedYearlyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up normalized data by meter for a given range of years- Result includes cost, use, unit cost on an yearly basis.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMeterNormalizedYearlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MeterDigestNormalizedYearlyResponse>> {\n        return this.getMeterNormalizedYearlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MeterDigestNormalizedYearlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all rates for a particular meter\n     * \n     * @param meterId The meter identifier for which rate values are being retrieved\n     */\n    public getMeterRates(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MeterRateResponse>> {\n        return this.getMeterRatesWithHttpInfo(meterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MeterRateResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up savings billing data for a given meter for a given number of years- Result includes cost and use savings on a monthly basis.\n     * \n     * @param meterId The identifier for the meter being retrieved\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years/24 months\n     */\n    public getMeterSavingsMonthly(meterId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<MeterDigestSavingsMonthlyResponse> {\n        return this.getMeterSavingsMonthlyWithHttpInfo(meterId, numberOfYears, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<MeterDigestSavingsMonthlyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up savings billing data by meter for a given number of years- Result includes cost and use savings on a monthly basis.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years/24 months\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMeterSavingsMonthlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MeterDigestSavingsMonthlyResponse>> {\n        return this.getMeterSavingsMonthlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MeterDigestSavingsMonthlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves savings data for a single meter for a given number of years.\n     * \n     * @param meterId The meter for which to return data\n     * @param numberOfYears Number of years of data to return including the current year - Defaults to 4\n     */\n    public getMeterSavingsYearly(meterId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<MeterDigestSavingsYearlyResponse> {\n        return this.getMeterSavingsYearlyWithHttpInfo(meterId, numberOfYears, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<MeterDigestSavingsYearlyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves savings data by meter for a given number of years.\n     * \n     * @param numberOfYears Number of years of data to return including the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMeterSavingsYearlyList(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MeterDigestSavingsYearlyResponse>> {\n        return this.getMeterSavingsYearlyListWithHttpInfo(numberOfYears, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MeterDigestSavingsYearlyResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all templates for a particular meter\n     * \n     * @param meterId The meter identifier for which template values are being retrieved\n     */\n    public getMeterTemplates(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MeterTemplateResponse>> {\n        return this.getMeterTemplatesWithHttpInfo(meterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MeterTemplateResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all user defined fields / custom fields for a particular meter\n     * \n     * @param meterId The meter identifier for which user defined field / custom field values are being retrieved\n     */\n    public getMeterUdfs(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<UDFFieldChild>> {\n        return this.getMeterUdfsWithHttpInfo(meterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<UDFFieldChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all meters\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMeters(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MeterResponse>> {\n        return this.getMetersWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MeterResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all user defined fields / custom fields for all meters\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMetersUdfs(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MeterUDFResponse>> {\n        return this.getMetersUdfsWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MeterUDFResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves an array of readings\n     * \n     * @param channelId Specific Channel ID\n     * @param beginDate The starting date of readings to return\n     * @param endDate The end date of readings to return\n     * @param originalValue If &#39;true&#39;, returns the original observation value. If &#39;false&#39; returns the computed observation value based on the channel type. NOTE: this parameter is no longer used and has been deprecated.\n     */\n    public getReadings(channelId: number, beginDate?: Date, endDate?: Date, originalValue?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Readings> {\n        return this.getReadingsWithHttpInfo(channelId, beginDate, endDate, originalValue, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Readings>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves one route\n     * \n     * @param id The identifier for route being retrieved\n     */\n    public getRoute(id: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<RouteResponse> {\n        return this.getRouteWithHttpInfo(id, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<RouteResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves one route and all the meters on that route The meters are ordered by display order\n     * \n     * @param id The identifier for route being retrieved\n     */\n    public getRouteDetails(id: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<RouteDetailsResponse> {\n        return this.getRouteDetailsWithHttpInfo(id, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<RouteDetailsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all routes\n     * \n     */\n    public getRoutes(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<RouteResponse>> {\n        return this.getRoutesWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<RouteResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves a list of routes with their list of meters and a list of channels on each meter with the latest reading Meters are returned in order they appear on a route If the interval filter is passed and no channels match the filter, the route is not included in the response.\n     * \n     * @param filter \n     */\n    public getRoutesWithMetersChannelsLatestReading(filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<RouteMeterChannelLatestReadingResponse>> {\n        return this.getRoutesWithMetersChannelsLatestReadingWithHttpInfo(filter, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<RouteMeterChannelLatestReadingResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Gets a list of the Adjusted Cost Types\n     * \n     */\n    public getSavingsAdjustedCostTypeList(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<AdjustedCostTypeResponse>> {\n        return this.getSavingsAdjustedCostTypeListWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<AdjustedCostTypeResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a single Savings Details record of usage and cost avoidance for a meter and bill\n     * \n     * @param meterId The meter for which to retrieve data\n     * @param billId The bill for which to retrieve data\n     */\n    public getSavingsMeterBill(meterId: number, billId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<SavingsMeterBillResponse> {\n        return this.getSavingsMeterBillWithHttpInfo(meterId, billId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<SavingsMeterBillResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get cost avoidance savings by day for a meter and bill\n     * \n     * @param meterId The meter for which to retrieve data\n     * @param billId The bill for which to retrieve data\n     */\n    public getSavingsMeterBillDaily(meterId: number, billId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<SavingsMeterBillDailyResponse> {\n        return this.getSavingsMeterBillDailyWithHttpInfo(meterId, billId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<SavingsMeterBillDailyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get Savings Details of usage and cost avoidance for a meter&#39;s bills\n     * \n     * @param meterId The meter for which to retrieve data\n     * @param numberOfYears Number of years of data to return; includes the current year - Defaults to 5\n     */\n    public getSavingsMeterBillList(meterId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<SavingsMeterBillResponse>> {\n        return this.getSavingsMeterBillListWithHttpInfo(meterId, numberOfYears, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<SavingsMeterBillResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a single cost avoidance task by its unique ID\n     * \n     * @param taskId \n     */\n    public getSavingsTask(taskId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CostAvoidanceTask> {\n        return this.getSavingsTaskWithHttpInfo(taskId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CostAvoidanceTask>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a list of cost avoidance tasks NOTE: does not include cost avoidance tasks created from prior versions of the software\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getSavingsTasks(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<CostAvoidanceTask>> {\n        return this.getSavingsTasksWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<CostAvoidanceTask>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get Special Adjustment Methods\n     * \n     */\n    public getSpecialAdjustmentMethods(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<SpecialAdjustmentMethod>> {\n        return this.getSpecialAdjustmentMethodsWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<SpecialAdjustmentMethod>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get Special Adjustment Types\n     * \n     */\n    public getSpecialAdjustmentTypes(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<SpecialAdjustmentType>> {\n        return this.getSpecialAdjustmentTypesWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<SpecialAdjustmentType>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get all unplaced meters\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getUnplacedMeters(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<MeterResponse>> {\n        return this.getUnplacedMetersWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<MeterResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get meters on a particular place\n     * \n     * @param placeId The id of the place\n     */\n    public getUtilityPlatformMetersByPlace(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<UtilityPlatformMeter>> {\n        return this.getUtilityPlatformMetersByPlaceWithHttpInfo(placeId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<UtilityPlatformMeter>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Download file for a channel version custom field\n     * \n     * @param meterId \n     * @param channelId \n     * @param versionId \n     * @param udfId \n     */\n    public downloadChannelVersionCustomFieldFileWithHttpInfo(meterId: number, channelId: number, versionId: number, udfId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202105/meter/${meterId}/channel/${channelId}/version/${versionId}/udf/${udfId}/download'\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'channelId' + '}', String(channelId))\n                    .replace('${' + 'versionId' + '}', String(versionId))\n                    .replace('${' + 'udfId' + '}', String(udfId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling downloadChannelVersionCustomFieldFile.');\n        }\n        // verify required parameter 'channelId' is not null or undefined\n        if (channelId === null || channelId === undefined) {\n            throw new Error('Required parameter channelId was null or undefined when calling downloadChannelVersionCustomFieldFile.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling downloadChannelVersionCustomFieldFile.');\n        }\n        // verify required parameter 'udfId' is not null or undefined\n        if (udfId === null || udfId === undefined) {\n            throw new Error('Required parameter udfId was null or undefined when calling downloadChannelVersionCustomFieldFile.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Download file for a meter custom field\n     * \n     * @param meterId \n     * @param udfId \n     */\n    public downloadMeterCustomFieldFileWithHttpInfo(meterId: number, udfId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202105/meter/${meterId}/udf/${udfId}/download'\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'udfId' + '}', String(udfId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling downloadMeterCustomFieldFile.');\n        }\n        // verify required parameter 'udfId' is not null or undefined\n        if (udfId === null || udfId === undefined) {\n            throw new Error('Required parameter udfId was null or undefined when calling downloadMeterCustomFieldFile.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get calculated bill account line items\n     * \n     * @param accountId ID of the account to receive calculated bill details\n     * @param meterId ID of the meter to receive calculated bill details\n     * @param versionId ID of the calculated bill distribution version\n     */\n    public getAccountLineItemsWithHttpInfo(accountId: number, meterId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<GenericBodylineResponse>>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/meter/${meterId}/calculatedBill/${versionId}/accountLineItem'\n                    .replace('${' + 'accountId' + '}', String(accountId))\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling getAccountLineItems.');\n        }\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getAccountLineItems.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling getAccountLineItems.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<GenericBodylineResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get calculated cost details\n     * \n     * @param accountId ID of the account to receive calculated bill details\n     * @param meterId ID of the meter to receive calculated bill details\n     * @param versionId ID of the calculated bill distribution version\n     */\n    public getCalculateBillCostWithHttpInfo(accountId: number, meterId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CalculatedBillCostResponse>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/meter/${meterId}/calculatedBill/${versionId}/cost'\n                    .replace('${' + 'accountId' + '}', String(accountId))\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling getCalculateBillCost.');\n        }\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getCalculateBillCost.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling getCalculateBillCost.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CalculatedBillCostResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get calculated demand details\n     * \n     * @param accountId ID of the account to receive calculated bill details\n     * @param meterId ID of the meter to receive calculated bill details\n     * @param versionId ID of the calculated bill distribution version\n     */\n    public getCalculateBillDemandWithHttpInfo(accountId: number, meterId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CalculatedBillDemandResponse>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/meter/${meterId}/calculatedBill/${versionId}/demand'\n                    .replace('${' + 'accountId' + '}', String(accountId))\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling getCalculateBillDemand.');\n        }\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getCalculateBillDemand.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling getCalculateBillDemand.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CalculatedBillDemandResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * All details related to calculated bill setup including use, cost, meter line items, and account line items\n     * \n     * @param accountId ID of the account to receive calculated bill details\n     * @param meterId ID of the meter to receive calculated bill details\n     * @param versionId ID of the calculated bill distribution version\n     */\n    public getCalculateBillDetailsWithHttpInfo(accountId: number, meterId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CalculatedBillDetailsResponse>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/meter/${meterId}/calculatedBill/${versionId}'\n                    .replace('${' + 'accountId' + '}', String(accountId))\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling getCalculateBillDetails.');\n        }\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getCalculateBillDetails.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling getCalculateBillDetails.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CalculatedBillDetailsResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get calculated use details\n     * \n     * @param accountId ID of the account to receive calculated bill details\n     * @param meterId ID of the meter to receive calculated bill details\n     * @param versionId ID of the calculated bill distribution version\n     */\n    public getCalculateBillUseWithHttpInfo(accountId: number, meterId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CalculatedBillUseResponse>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/meter/${meterId}/calculatedBill/${versionId}/use'\n                    .replace('${' + 'accountId' + '}', String(accountId))\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling getCalculateBillUse.');\n        }\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getCalculateBillUse.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling getCalculateBillUse.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CalculatedBillUseResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a list of calculated bill versions on this account and meter relationship\n     * \n     * @param accountId ID of the account to get all assigned calculated bill versions\n     * @param meterId ID of the meter to get all assigned calculated bill versions\n     */\n    public getCalculatedBillVersionHistoryWithHttpInfo(accountId: number, meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<DistributionVersionResponse>>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/meter/${meterId}/calculatedBill'\n                    .replace('${' + 'accountId' + '}', String(accountId))\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling getCalculatedBillVersionHistory.');\n        }\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getCalculatedBillVersionHistory.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<DistributionVersionResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a list of calculated bill versions on a meter\n     * \n     * @param meterId ID of the meter to get all assigned calculated bill versions\n     */\n    public getCalculatedBillsWithHttpInfo(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<DistributionVersionResponse>>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/calculatedBill'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getCalculatedBills.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<DistributionVersionResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get calendarized Use vs Weather data\n     * \n     * @param meterId The meter identifier\n     */\n    public getCalendarizedUseVsWeatherDataWithHttpInfo(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MeterCalendarizedUseVsWeatherResponse>>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/usevsweather/calendarized'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getCalendarizedUseVsWeatherData.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MeterCalendarizedUseVsWeatherResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all data points\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getDataPointsWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<DataPointResponse>>> {\n        const path = this.basePath + '/api/v202406/datapoint';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<DataPointResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves an ESA channel\n     * \n     * @param esaChannelId The ESA channel identifier\n     */\n    public getEsaChannelWithHttpInfo(esaChannelId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EsaChannelResponse>> {\n        const path = this.basePath + '/api/v202406/esachannel/${esaChannelId}'\n                    .replace('${' + 'esaChannelId' + '}', String(esaChannelId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'esaChannelId' is not null or undefined\n        if (esaChannelId === null || esaChannelId === undefined) {\n            throw new Error('Required parameter esaChannelId was null or undefined when calling getEsaChannel.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EsaChannelResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves an ESA channel version for a specified ESA channel\n     * \n     * @param esaChannelId The ESA channel identifier\n     * @param versionId The ESA channel version identifier\n     */\n    public getEsaChannelVersionWithHttpInfo(esaChannelId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EsaChannelVersionResponse>> {\n        const path = this.basePath + '/api/v202406/esachannel/${esaChannelId}/version/${versionId}'\n                    .replace('${' + 'esaChannelId' + '}', String(esaChannelId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'esaChannelId' is not null or undefined\n        if (esaChannelId === null || esaChannelId === undefined) {\n            throw new Error('Required parameter esaChannelId was null or undefined when calling getEsaChannelVersion.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling getEsaChannelVersion.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EsaChannelVersionResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all ESA channel version for a specified ESA channel\n     * \n     * @param esaChannelId \n     */\n    public getEsaChannelVersionsWithHttpInfo(esaChannelId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<EsaChannelVersionResponse>>> {\n        const path = this.basePath + '/api/v202406/esachannel/${esaChannelId}/version'\n                    .replace('${' + 'esaChannelId' + '}', String(esaChannelId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'esaChannelId' is not null or undefined\n        if (esaChannelId === null || esaChannelId === undefined) {\n            throw new Error('Required parameter esaChannelId was null or undefined when calling getEsaChannelVersions.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<EsaChannelVersionResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves a filtered list of ESA Channels.\n     * \n     * @param filter \n     * @param orderBy \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getEsaChannelsWithHttpInfo(filter?: string, orderBy?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<EsaChannelResponse>>> {\n        const path = this.basePath + '/api/v202406/esachannel';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (orderBy !== undefined) {\n            queryParameters = queryParameters.set('orderBy', <any>orderBy);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<EsaChannelResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Gets an ESA reading import profile\n     * \n     * @param profileId \n     */\n    public getEsaReadingImportProfileWithHttpInfo(profileId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EsaReadingImportProfileResponse>> {\n        const path = this.basePath + '/api/v202407/import/esareading/profile/${profileId}'\n                    .replace('${' + 'profileId' + '}', String(profileId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'profileId' is not null or undefined\n        if (profileId === null || profileId === undefined) {\n            throw new Error('Required parameter profileId was null or undefined when calling getEsaReadingImportProfile.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EsaReadingImportProfileResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get all ESA reading import profiles\n     * \n     */\n    public getEsaReadingImportProfilesWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<EsaReadingImportProfileResponse>>> {\n        const path = this.basePath + '/api/v202407/import/esareading/profile';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<EsaReadingImportProfileResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get the ghg meter factors\n     * \n     * @param meterId The meter identifier for ghg factors are being retrieved\n     */\n    public getGHGMeterFactorsWithHttpInfo(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<GHGFactorsResponse>>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/ghg/factor'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getGHGMeterFactors.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<GHGFactorsResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves one meter\n     * \n     * @param meterId The meter identifier for the meter being retrieved\n     */\n    public getMeterWithHttpInfo(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<MeterResponse>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getMeter.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<MeterResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up actual billing data for a given meter for a given range of months- Result includes cost, use, unit cost on a monthly basis.\n     * \n     * @param meterId The identifier for the meter being retrieved\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for actual and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     */\n    public getMeterActualMonthlyWithHttpInfo(meterId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<MeterDigestActualAndCalendarizedMonthlyResponse>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/digest/actual/monthly'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getMeterActualMonthly.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<MeterDigestActualAndCalendarizedMonthlyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by meter for a given range of months- Result includes cost, use, unit cost on a monthly basis.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for actual and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMeterActualMonthlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MeterDigestActualAndCalendarizedMonthlyResponse>>> {\n        const path = this.basePath + '/api/v3/meter/digest/actual/monthly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MeterDigestActualAndCalendarizedMonthlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up actual billing data for a given meter for a given range of years- Result includes cost, use, unit cost on an yearly basis.\n     * \n     * @param meterId The identifier for the meter being retrieved\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     */\n    public getMeterActualYearlyWithHttpInfo(meterId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<MeterDigestActualAndCalendarizedYearlyResponse>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/digest/actual/yearly'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getMeterActualYearly.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<MeterDigestActualAndCalendarizedYearlyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up billing data by meter for a given range of years- Result includes cost, use, unit cost on an yearly basis.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMeterActualYearlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MeterDigestActualAndCalendarizedYearlyResponse>>> {\n        const path = this.basePath + '/api/v3/meter/digest/actual/yearly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MeterDigestActualAndCalendarizedYearlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get bill split parent information for a meter\n     * \n     * @param meterId ID of the meter\n     */\n    public getMeterBillSplitParentDetailsWithHttpInfo(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<BillSplitParentDetailsResponse>>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/billSplit/parent'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getMeterBillSplitParentDetails.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<BillSplitParentDetailsResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up calendarized billing data for a given meter for a given range of months- Result includes cost, use, unit cost on a monthly basis.\n     * \n     * @param meterId The identifier for the meter being retrieved\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for actual and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     */\n    public getMeterCalendarizedMonthlyWithHttpInfo(meterId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<MeterDigestActualAndCalendarizedMonthlyResponse>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/digest/calendarized/monthly'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getMeterCalendarizedMonthly.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<MeterDigestActualAndCalendarizedMonthlyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up calendarized billing data by meter for a given range of months- Result includes cost, use, unit cost on a monthly basis.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for actual and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMeterCalendarizedMonthlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MeterDigestActualAndCalendarizedMonthlyResponse>>> {\n        const path = this.basePath + '/api/v3/meter/digest/calendarized/monthly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MeterDigestActualAndCalendarizedMonthlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up calendarized billing data for a given meter for a given range of months- Result includes cost, use, unit cost on a monthly basis.\n     * \n     * @param meterId The identifier for the meter being retrieved\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for actual and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     */\n    public getMeterCalendarizedTrendWithHttpInfo(meterId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<MeterDigestCalendarizedTrendResponse>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/digest/calendarized/trend'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getMeterCalendarizedTrend.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<MeterDigestCalendarizedTrendResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up calendarized billing data for a given meter for a given range of years- Result includes cost, use, unit cost on an yearly basis.\n     * \n     * @param meterId The identifier for the meter being retrieved\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     */\n    public getMeterCalendarizedYearlyWithHttpInfo(meterId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<MeterDigestActualAndCalendarizedYearlyResponse>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/digest/calendarized/yearly'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getMeterCalendarizedYearly.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<MeterDigestActualAndCalendarizedYearlyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up calendarized data by meter for a given range of years- Result includes cost, use, unit cost on an yearly basis.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMeterCalendarizedYearlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MeterDigestActualAndCalendarizedYearlyResponse>>> {\n        const path = this.basePath + '/api/v3/meter/digest/calendarized/yearly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MeterDigestActualAndCalendarizedYearlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves a channel and its channel versions linked to a meter\n     * \n     * @param meterId Id of the linked meter to retrieve the channel information for\n     * @param channelId Id of the channel to retrieve information for\n     */\n    public getMeterChannelWithHttpInfo(meterId: number, channelId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ChannelResponse>> {\n        const path = this.basePath + '/api/v202101/meter/${meterId}/channel/${channelId}'\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'channelId' + '}', String(channelId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getMeterChannel.');\n        }\n        // verify required parameter 'channelId' is not null or undefined\n        if (channelId === null || channelId === undefined) {\n            throw new Error('Required parameter channelId was null or undefined when calling getMeterChannel.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ChannelResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all channel and channel versions linked to a meter\n     * \n     * @param meterId Id of the meter to retrieve the channel information for\n     */\n    public getMeterChannelsWithHttpInfo(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<ChannelResponse>>> {\n        const path = this.basePath + '/api/v202101/meter/${meterId}/channel'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getMeterChannels.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<ChannelResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get the configured GHG scope category and factor for a meter. GHG License is required to call this endpoint.\n     * \n     * @param meterId The meter to retrieve settings for\n     */\n    public getMeterGHGSettingsWithHttpInfo(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<GHGSettingResponse>> {\n        const path = this.basePath + '/api/v202210/meter/${meterId}/ghgsetting'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getMeterGHGSettings.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<GHGSettingResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all Meter Groups for a particular meter\n     * \n     * @param meterId The meter identifier for which group values are being retrieved\n     */\n    public getMeterGroupsWithHttpInfo(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MeterGroupResponse>>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/group'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getMeterGroups.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MeterGroupResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get calculated bill meter line items\n     * \n     * @param accountId ID of the account to receive calculated bill details\n     * @param meterId ID of the meter to receive calculated bill details\n     * @param versionId ID of the calculated bill distribution version\n     */\n    public getMeterLineItemsWithHttpInfo(accountId: number, meterId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<GenericBodylineResponse>>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/meter/${meterId}/calculatedBill/${versionId}/meterLineItem'\n                    .replace('${' + 'accountId' + '}', String(accountId))\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling getMeterLineItems.');\n        }\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getMeterLineItems.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling getMeterLineItems.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<GenericBodylineResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up normalized billing data for a given meter for a given range of months- Result includes cost, use, unit cost on a monthly basis.\n     * \n     * @param meterId The identifier for the meter being retrieved\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for actual and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     */\n    public getMeterNormalizedMonthlyWithHttpInfo(meterId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<MeterDigestNormalizedMonthlyResponse>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/digest/normalized/monthly'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getMeterNormalizedMonthly.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<MeterDigestNormalizedMonthlyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up normalized billing data by meter for a given range of months- Result includes cost, use, unit cost on a monthly basis.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years of months (24 for actual and savings, and 24 or 26 (if 13 accounting periods) for calendarized and normalized)\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMeterNormalizedMonthlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MeterDigestNormalizedMonthlyResponse>>> {\n        const path = this.basePath + '/api/v3/meter/digest/normalized/monthly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MeterDigestNormalizedMonthlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up normalized billing data for a given meter for a given range of years- Result includes cost, use, unit cost on an yearly basis.\n     * \n     * @param meterId The identifier for the meter being retrieved\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     */\n    public getMeterNormalizedYearlyWithHttpInfo(meterId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<MeterDigestNormalizedYearlyResponse>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/digest/normalized/yearly'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getMeterNormalizedYearly.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<MeterDigestNormalizedYearlyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up normalized data by meter for a given range of years- Result includes cost, use, unit cost on an yearly basis.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMeterNormalizedYearlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MeterDigestNormalizedYearlyResponse>>> {\n        const path = this.basePath + '/api/v3/meter/digest/normalized/yearly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MeterDigestNormalizedYearlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all rates for a particular meter\n     * \n     * @param meterId The meter identifier for which rate values are being retrieved\n     */\n    public getMeterRatesWithHttpInfo(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MeterRateResponse>>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/rate'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getMeterRates.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MeterRateResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up savings billing data for a given meter for a given number of years- Result includes cost and use savings on a monthly basis.\n     * \n     * @param meterId The identifier for the meter being retrieved\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years/24 months\n     */\n    public getMeterSavingsMonthlyWithHttpInfo(meterId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<MeterDigestSavingsMonthlyResponse>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/digest/savings/monthly'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getMeterSavingsMonthly.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<MeterDigestSavingsMonthlyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up savings billing data by meter for a given number of years- Result includes cost and use savings on a monthly basis.\n     * \n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to two years/24 months\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMeterSavingsMonthlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MeterDigestSavingsMonthlyResponse>>> {\n        const path = this.basePath + '/api/v3/meter/digest/savings/monthly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MeterDigestSavingsMonthlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves savings data for a single meter for a given number of years.\n     * \n     * @param meterId The meter for which to return data\n     * @param numberOfYears Number of years of data to return including the current year - Defaults to 4\n     */\n    public getMeterSavingsYearlyWithHttpInfo(meterId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<MeterDigestSavingsYearlyResponse>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/digest/savings/yearly'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getMeterSavingsYearly.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<MeterDigestSavingsYearlyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves savings data by meter for a given number of years.\n     * \n     * @param numberOfYears Number of years of data to return including the current year - Defaults to 4\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMeterSavingsYearlyListWithHttpInfo(numberOfYears?: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MeterDigestSavingsYearlyResponse>>> {\n        const path = this.basePath + '/api/v3/meter/digest/savings/yearly';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MeterDigestSavingsYearlyResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all templates for a particular meter\n     * \n     * @param meterId The meter identifier for which template values are being retrieved\n     */\n    public getMeterTemplatesWithHttpInfo(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MeterTemplateResponse>>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/template'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getMeterTemplates.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MeterTemplateResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all user defined fields / custom fields for a particular meter\n     * \n     * @param meterId The meter identifier for which user defined field / custom field values are being retrieved\n     */\n    public getMeterUdfsWithHttpInfo(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<UDFFieldChild>>> {\n        const path = this.basePath + '/api/v3/meter/${meterId}/udf'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getMeterUdfs.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<UDFFieldChild>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all meters\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMetersWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MeterResponse>>> {\n        const path = this.basePath + '/api/v3/meter';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MeterResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all user defined fields / custom fields for all meters\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getMetersUdfsWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MeterUDFResponse>>> {\n        const path = this.basePath + '/api/v3/meter/udf';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MeterUDFResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves an array of readings\n     * \n     * @param channelId Specific Channel ID\n     * @param beginDate The starting date of readings to return\n     * @param endDate The end date of readings to return\n     * @param originalValue If &#39;true&#39;, returns the original observation value. If &#39;false&#39; returns the computed observation value based on the channel type. NOTE: this parameter is no longer used and has been deprecated.\n     */\n    public getReadingsWithHttpInfo(channelId: number, beginDate?: Date, endDate?: Date, originalValue?: boolean, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Readings>> {\n        const path = this.basePath + '/api/v3/channel/${channelId}/reading'\n                    .replace('${' + 'channelId' + '}', String(channelId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'channelId' is not null or undefined\n        if (channelId === null || channelId === undefined) {\n            throw new Error('Required parameter channelId was null or undefined when calling getReadings.');\n        }\n        if (beginDate !== undefined) {\n            queryParameters = queryParameters.set('beginDate', <any>beginDate.toISOString());\n        }\n\n        if (endDate !== undefined) {\n            queryParameters = queryParameters.set('endDate', <any>endDate.toISOString());\n        }\n\n        if (originalValue !== undefined) {\n            queryParameters = queryParameters.set('originalValue', <any>originalValue);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Readings>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves one route\n     * \n     * @param id The identifier for route being retrieved\n     */\n    public getRouteWithHttpInfo(id: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<RouteResponse>> {\n        const path = this.basePath + '/api/v3/route/${id}'\n                    .replace('${' + 'id' + '}', String(id));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'id' is not null or undefined\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling getRoute.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<RouteResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves one route and all the meters on that route The meters are ordered by display order\n     * \n     * @param id The identifier for route being retrieved\n     */\n    public getRouteDetailsWithHttpInfo(id: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<RouteDetailsResponse>> {\n        const path = this.basePath + '/api/v3/route/${id}/details'\n                    .replace('${' + 'id' + '}', String(id));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'id' is not null or undefined\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling getRouteDetails.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<RouteDetailsResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all routes\n     * \n     */\n    public getRoutesWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<RouteResponse>>> {\n        const path = this.basePath + '/api/v3/route';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<RouteResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves a list of routes with their list of meters and a list of channels on each meter with the latest reading Meters are returned in order they appear on a route If the interval filter is passed and no channels match the filter, the route is not included in the response.\n     * \n     * @param filter \n     */\n    public getRoutesWithMetersChannelsLatestReadingWithHttpInfo(filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<RouteMeterChannelLatestReadingResponse>>> {\n        const path = this.basePath + '/api/v3/route/meter/channel/latestReading';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<RouteMeterChannelLatestReadingResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Gets a list of the Adjusted Cost Types\n     * \n     */\n    public getSavingsAdjustedCostTypeListWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<AdjustedCostTypeResponse>>> {\n        const path = this.basePath + '/api/v3/savings/adjustedCostType';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<AdjustedCostTypeResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a single Savings Details record of usage and cost avoidance for a meter and bill\n     * \n     * @param meterId The meter for which to retrieve data\n     * @param billId The bill for which to retrieve data\n     */\n    public getSavingsMeterBillWithHttpInfo(meterId: number, billId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<SavingsMeterBillResponse>> {\n        const path = this.basePath + '/api/v3/savings/meter/${meterId}/bill/${billId}'\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'billId' + '}', String(billId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getSavingsMeterBill.');\n        }\n        // verify required parameter 'billId' is not null or undefined\n        if (billId === null || billId === undefined) {\n            throw new Error('Required parameter billId was null or undefined when calling getSavingsMeterBill.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<SavingsMeterBillResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get cost avoidance savings by day for a meter and bill\n     * \n     * @param meterId The meter for which to retrieve data\n     * @param billId The bill for which to retrieve data\n     */\n    public getSavingsMeterBillDailyWithHttpInfo(meterId: number, billId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<SavingsMeterBillDailyResponse>> {\n        const path = this.basePath + '/api/v3/savings/meter/${meterId}/bill/${billId}/daily'\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'billId' + '}', String(billId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getSavingsMeterBillDaily.');\n        }\n        // verify required parameter 'billId' is not null or undefined\n        if (billId === null || billId === undefined) {\n            throw new Error('Required parameter billId was null or undefined when calling getSavingsMeterBillDaily.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<SavingsMeterBillDailyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get Savings Details of usage and cost avoidance for a meter&#39;s bills\n     * \n     * @param meterId The meter for which to retrieve data\n     * @param numberOfYears Number of years of data to return; includes the current year - Defaults to 5\n     */\n    public getSavingsMeterBillListWithHttpInfo(meterId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<SavingsMeterBillResponse>>> {\n        const path = this.basePath + '/api/v3/savings/meter/${meterId}/bill'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getSavingsMeterBillList.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<SavingsMeterBillResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a single cost avoidance task by its unique ID\n     * \n     * @param taskId \n     */\n    public getSavingsTaskWithHttpInfo(taskId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CostAvoidanceTask>> {\n        const path = this.basePath + '/api/v3/savings/task/${taskId}'\n                    .replace('${' + 'taskId' + '}', String(taskId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'taskId' is not null or undefined\n        if (taskId === null || taskId === undefined) {\n            throw new Error('Required parameter taskId was null or undefined when calling getSavingsTask.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CostAvoidanceTask>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a list of cost avoidance tasks NOTE: does not include cost avoidance tasks created from prior versions of the software\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getSavingsTasksWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<CostAvoidanceTask>>> {\n        const path = this.basePath + '/api/v3/savings/task';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<CostAvoidanceTask>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get Special Adjustment Methods\n     * \n     */\n    public getSpecialAdjustmentMethodsWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<SpecialAdjustmentMethod>>> {\n        const path = this.basePath + '/api/v3/savings/adjustment/special/method';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<SpecialAdjustmentMethod>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get Special Adjustment Types\n     * \n     */\n    public getSpecialAdjustmentTypesWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<SpecialAdjustmentType>>> {\n        const path = this.basePath + '/api/v3/savings/adjustment/special/type';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<SpecialAdjustmentType>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get all unplaced meters\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getUnplacedMetersWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<MeterResponse>>> {\n        const path = this.basePath + '/api/v202203/meter/unplacedMeters';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<MeterResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get meters on a particular place\n     * \n     * @param placeId The id of the place\n     */\n    public getUtilityPlatformMetersByPlaceWithHttpInfo(placeId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<UtilityPlatformMeter>>> {\n        const path = this.basePath + '/api/v202203/utilityPlatform/place/${placeId}/meter'\n                    .replace('${' + 'placeId' + '}', String(placeId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'placeId' is not null or undefined\n        if (placeId === null || placeId === undefined) {\n            throw new Error('Required parameter placeId was null or undefined when calling getUtilityPlatformMetersByPlace.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<UtilityPlatformMeter>>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsMoveAccountsBetweenVendorsManagespanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Add accounts to a vendor\n     * \n     * @param vendorId The identifier for the vendor to which accounts are being added\n     * @param body List of accountIds to move a new vendor\n     */\n    public addAccounts(vendorId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.addAccountsWithHttpInfo(vendorId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Add accounts to a vendor\n     * \n     * @param vendorId The identifier for the vendor to which accounts are being added\n     * @param body List of accountIds to move a new vendor\n     */\n    public addAccountsWithHttpInfo(vendorId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/vendor/${vendorId}/account'\n                    .replace('${' + 'vendorId' + '}', String(vendorId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'vendorId' is not null or undefined\n        if (vendorId === null || vendorId === undefined) {\n            throw new Error('Required parameter vendorId was null or undefined when calling addAccounts.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { BillActionMove } from '../model/billActionMove';\nimport { BillActionMoveList } from '../model/billActionMoveList';\nimport { ListIds } from '../model/listIds';\nimport { MoveBillsDestination } from '../model/moveBillsDestination';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsMoveExistingBillsManagespanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Retrieves a list of accounts that contain meters of ALL of the commodities represented by the given Bills\n     * \n     * @param body List of Bill Ids to be used to determine the commodities to be matched on the destination accounts.\n     */\n    public getPossibleDestinationAccounts(body?: ListIds, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<MoveBillsDestination> {\n        return this.getPossibleDestinationAccountsWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<MoveBillsDestination>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves a list of Accounts that contain meters of ALL of the commodities represented by the given Account&#39;s Bill List\n     * \n     * @param accountId A specific Account that should be used for finding matching Accounts (uses all Bills on the Account Bill List).\n     */\n    public getPossibleDestinationAccountsForAccountList(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<MoveBillsDestination> {\n        return this.getPossibleDestinationAccountsForAccountListWithHttpInfo(accountId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<MoveBillsDestination>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves a list of accounts that contain meters of ALL of the commodities represented by the given Bill List\n     * \n     * @param listId A specific Bill List that should be used for finding matching Accounts.\n     */\n    public getPossibleDestinationAccountsForList(listId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<MoveBillsDestination> {\n        return this.getPossibleDestinationAccountsForListWithHttpInfo(listId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<MoveBillsDestination>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Moves the list of given bills to the specified destination account and meters. Each source Meter will be matched with  a corresponding destination Meter based on commodity.\n     * \n     * @param body DTO containing a list of Bill Ids, the destination Account Id, the destination AcountMeter Ids, a flag  indicating whether the Account GL information should be updated, a flag indicating whether the Meter GL information should be updated, and a flag indicating whether linked emissions record scope cateogory and GHG factors should be updated. WARNING: If emissions record scope categories and GHG factors are updated, any notes and/or attachments on those emissions records will be lost.\n     */\n    public moveBillsToAccount(body?: BillActionMove, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.moveBillsToAccountWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     *     Moves the bills from the given Account&#39;s Bill List to the specified destination Account and Meters. Each source Meter      will be matched with a corresponding destination Meter based on commodity. &lt;param name&#x3D;\\&quot;accountId\\&quot;&gt;     Account for the Bill List containing a list of bills that should be moved. All bills from this Account&#39;s Bill List will be moved. &lt;/param&gt;&lt;param name&#x3D;\\&quot;dto\\&quot;&gt;     DTO containing the destination Account Id, the destination AcountMeter Ids, a flag indicating whether the Account GL      information should be updated, a flag indicating whether the Meter GL information should be updated,     and a flag indicating whether linked emissions record scope and GHG factors should be updated.     WARNING: If emissions record scope categories and GHG factors are updated, any notes and/or attachments on those emissions records will be lost. &lt;/param&gt;\n     * \n     * @param accountId \n     * @param body \n     */\n    public moveBillsToAccountFromAccountList(accountId: number, body?: BillActionMoveList, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.moveBillsToAccountFromAccountListWithHttpInfo(accountId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     *     Moves the bills from the given Bill List to the specified destination Account and Meters. Each source Meter will be matched with      a corresponding destination Meter based on commodity. &lt;param name&#x3D;\\&quot;listId\\&quot;&gt;     Bill List containing a list of bills that should be moved. All bills from this list will be moved. &lt;/param&gt;&lt;param name&#x3D;\\&quot;dto\\&quot;&gt;     DTO containing the destination Account Id, the destination AcountMeter Ids, a flag indicating whether the Account GL      information should be updated, a flag indicating whether the Meter GL information should be updated,     and a flag indicating whether linked emissions record scope and GHG factors should be updated.     WARNING: If emissions record scope categories and GHG factors are updated, any notes and/or attachments on those emissions records will be lost. &lt;/param&gt;\n     * \n     * @param listId \n     * @param body \n     */\n    public moveBillsToAccountFromList(listId: number, body?: BillActionMoveList, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.moveBillsToAccountFromListWithHttpInfo(listId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Retrieves a list of accounts that contain meters of ALL of the commodities represented by the given Bills\n     * \n     * @param body List of Bill Ids to be used to determine the commodities to be matched on the destination accounts.\n     */\n    public getPossibleDestinationAccountsWithHttpInfo(body?: ListIds, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<MoveBillsDestination>> {\n        const path = this.basePath + '/api/v3/bill/possibleDestinationAccounts';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<MoveBillsDestination>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Retrieves a list of Accounts that contain meters of ALL of the commodities represented by the given Account&#39;s Bill List\n     * \n     * @param accountId A specific Account that should be used for finding matching Accounts (uses all Bills on the Account Bill List).\n     */\n    public getPossibleDestinationAccountsForAccountListWithHttpInfo(accountId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<MoveBillsDestination>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/list/bill/possibleDestinationAccounts'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling getPossibleDestinationAccountsForAccountList.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<MoveBillsDestination>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Retrieves a list of accounts that contain meters of ALL of the commodities represented by the given Bill List\n     * \n     * @param listId A specific Bill List that should be used for finding matching Accounts.\n     */\n    public getPossibleDestinationAccountsForListWithHttpInfo(listId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<MoveBillsDestination>> {\n        const path = this.basePath + '/api/v3/list/${listId}/possibleDestinationAccounts'\n                    .replace('${' + 'listId' + '}', String(listId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'listId' is not null or undefined\n        if (listId === null || listId === undefined) {\n            throw new Error('Required parameter listId was null or undefined when calling getPossibleDestinationAccountsForList.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<MoveBillsDestination>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Moves the list of given bills to the specified destination account and meters. Each source Meter will be matched with  a corresponding destination Meter based on commodity.\n     * \n     * @param body DTO containing a list of Bill Ids, the destination Account Id, the destination AcountMeter Ids, a flag  indicating whether the Account GL information should be updated, a flag indicating whether the Meter GL information should be updated, and a flag indicating whether linked emissions record scope cateogory and GHG factors should be updated. WARNING: If emissions record scope categories and GHG factors are updated, any notes and/or attachments on those emissions records will be lost.\n     */\n    public moveBillsToAccountWithHttpInfo(body?: BillActionMove, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/bill/moveBills';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     *     Moves the bills from the given Account&#39;s Bill List to the specified destination Account and Meters. Each source Meter      will be matched with a corresponding destination Meter based on commodity. &lt;param name&#x3D;\\&quot;accountId\\&quot;&gt;     Account for the Bill List containing a list of bills that should be moved. All bills from this Account&#39;s Bill List will be moved. &lt;/param&gt;&lt;param name&#x3D;\\&quot;dto\\&quot;&gt;     DTO containing the destination Account Id, the destination AcountMeter Ids, a flag indicating whether the Account GL      information should be updated, a flag indicating whether the Meter GL information should be updated,     and a flag indicating whether linked emissions record scope and GHG factors should be updated.     WARNING: If emissions record scope categories and GHG factors are updated, any notes and/or attachments on those emissions records will be lost. &lt;/param&gt;\n     * \n     * @param accountId \n     * @param body \n     */\n    public moveBillsToAccountFromAccountListWithHttpInfo(accountId: number, body?: BillActionMoveList, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/account/${accountId}/list/bill/moveBills'\n                    .replace('${' + 'accountId' + '}', String(accountId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'accountId' is not null or undefined\n        if (accountId === null || accountId === undefined) {\n            throw new Error('Required parameter accountId was null or undefined when calling moveBillsToAccountFromAccountList.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     *     Moves the bills from the given Bill List to the specified destination Account and Meters. Each source Meter will be matched with      a corresponding destination Meter based on commodity. &lt;param name&#x3D;\\&quot;listId\\&quot;&gt;     Bill List containing a list of bills that should be moved. All bills from this list will be moved. &lt;/param&gt;&lt;param name&#x3D;\\&quot;dto\\&quot;&gt;     DTO containing the destination Account Id, the destination AcountMeter Ids, a flag indicating whether the Account GL      information should be updated, a flag indicating whether the Meter GL information should be updated,     and a flag indicating whether linked emissions record scope and GHG factors should be updated.     WARNING: If emissions record scope categories and GHG factors are updated, any notes and/or attachments on those emissions records will be lost. &lt;/param&gt;\n     * \n     * @param listId \n     * @param body \n     */\n    public moveBillsToAccountFromListWithHttpInfo(listId: number, body?: BillActionMoveList, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/list/${listId}/moveBills'\n                    .replace('${' + 'listId' + '}', String(listId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'listId' is not null or undefined\n        if (listId === null || listId === undefined) {\n            throw new Error('Required parameter listId was null or undefined when calling moveBillsToAccountFromList.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { DashboardGlobalSettingsEdit } from '../model/dashboardGlobalSettingsEdit';\nimport { DashboardResponse } from '../model/dashboardResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsPublicDashboardsOrMapsManagespanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Edits the public display settings for a dashboard. Settings can only be applied to public dashboards. Filter settings cannot be applied to Map dashboards. To apply these settings, you must have the PublicDashboardsOrMaps Manage permission. You must also have either created the dashboard or have DashboardAdministrator Manage and the dashboard is shared at all or have DashboardAdministrator Manage permission and the dashboard is public or have SharedDashboardsOrMaps Edit permission and the dashboard is shared with you\n     * \n     * @param dashboardId The identifier for the dashboard to apply settings to.\n     * @param body An object containing the settings to be applied.\n     */\n    public editDashboardSettings(dashboardId: number, body?: DashboardGlobalSettingsEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<DashboardResponse> {\n        return this.editDashboardSettingsWithHttpInfo(dashboardId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<DashboardResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Edits the public display settings for a dashboard. Settings can only be applied to public dashboards. Filter settings cannot be applied to Map dashboards. To apply these settings, you must have the PublicDashboardsOrMaps Manage permission. You must also have either created the dashboard or have DashboardAdministrator Manage and the dashboard is shared at all or have DashboardAdministrator Manage permission and the dashboard is public or have SharedDashboardsOrMaps Edit permission and the dashboard is shared with you\n     * \n     * @param dashboardId The identifier for the dashboard to apply settings to.\n     * @param body An object containing the settings to be applied.\n     */\n    public editDashboardSettingsWithHttpInfo(dashboardId: number, body?: DashboardGlobalSettingsEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<DashboardResponse>> {\n        const path = this.basePath + '/api/v202208/dashboard/${dashboardId}/publicsetting'\n                    .replace('${' + 'dashboardId' + '}', String(dashboardId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'dashboardId' is not null or undefined\n        if (dashboardId === null || dashboardId === undefined) {\n            throw new Error('Required parameter dashboardId was null or undefined when calling editDashboardSettings.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<DashboardResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { RateCreate } from '../model/rateCreate';\nimport { RateResponse } from '../model/rateResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsRateSchedulesCreatespanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Create a rate schedule\n     * \n     * @param body The properties of the rate schedule to be created\n     */\n    public createRate(body?: RateCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<RateResponse> {\n        return this.createRateWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<RateResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Create a rate schedule\n     * \n     * @param body The properties of the rate schedule to be created\n     */\n    public createRateWithHttpInfo(body?: RateCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<RateResponse>> {\n        const path = this.basePath + '/api/v3/rate';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<RateResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsRateSchedulesDeletespanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Delete a rate schedule\n     * \n     * @param rateId Unique identifier of the rate schedule to be deleted\n     */\n    public deleteRate(rateId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteRateWithHttpInfo(rateId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Delete a rate schedule\n     * \n     * @param rateId Unique identifier of the rate schedule to be deleted\n     */\n    public deleteRateWithHttpInfo(rateId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/rate/${rateId}'\n                    .replace('${' + 'rateId' + '}', String(rateId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'rateId' is not null or undefined\n        if (rateId === null || rateId === undefined) {\n            throw new Error('Required parameter rateId was null or undefined when calling deleteRate.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { RateEdit } from '../model/rateEdit';\nimport { RateResponse } from '../model/rateResponse';\nimport { RateVersionRequest } from '../model/rateVersionRequest';\nimport { RateVersionResponse } from '../model/rateVersionResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsRateSchedulesEditspanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Create a rate schedule version\n     * Allows the user to create a new version for a rate schedule for use in chargeback scenarios where use or demand cost for calculated bills must be created from a predefined unit cost.          ### Validation         * Account and meter line items     * Subtotal calculation type is not supported  ### Other Remarks * Inserting a rate version before an existing version will set the new version&#39;s end date to the effective date of the subsequent version. * Null values are acceptable for use and demand unit costs. However, for chargeback bills to calculate correctly, these values must be provided.\n     * @param rateId Unique identifier of the rate schedule to receive the new version\n     * @param body The properties of the rate schedule version to be created\n     */\n    public createRateVersion(rateId: number, body?: RateVersionRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<RateVersionResponse> {\n        return this.createRateVersionWithHttpInfo(rateId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<RateVersionResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete a version of a rate schedule\n     * ### Validation * The last remaining rate version may not be deleted  ### Other Remarks * When a rate version is deleted, if there is a preceding rate version, then its end date will be reset to the end date of the deleted rate version.\n     * @param rateId Unique identifier of the rate schedule to which the version being deleted belongs\n     * @param versionId Unique identifier of the rate schedule version to delete\n     */\n    public deleteRateVersion(rateId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteRateVersionWithHttpInfo(rateId, versionId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit a rate\n     * \n     * @param rateId Unique identifier of the rate schedule to be edited\n     * @param body Updated properties of the rate schedule to be edited\n     */\n    public editRate(rateId: number, body?: RateEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<RateResponse> {\n        return this.editRateWithHttpInfo(rateId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<RateResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit a rate schedule version\n     * ### Validation * Effective date of the edited version     * Must be after the effective date of the previous version     * Must be prior to the effective date of the next version * Account and meter line items     * Subtotal calculation type is not supported  ### Other Remarks * Null values are acceptable for use and demand unit costs. However, for chargeback bills to calculate correctly, these values must be provided.\n     * @param rateId Unique identifier of the rate schedule whose version will be edited\n     * @param versionId Unique identifier of the rate schedule version to be edited\n     * @param body Updated properties of the rate schedule version to be edited\n     */\n    public editRateVersion(rateId: number, versionId: number, body?: RateVersionRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<RateVersionResponse> {\n        return this.editRateVersionWithHttpInfo(rateId, versionId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<RateVersionResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Create a rate schedule version\n     * Allows the user to create a new version for a rate schedule for use in chargeback scenarios where use or demand cost for calculated bills must be created from a predefined unit cost.          ### Validation         * Account and meter line items     * Subtotal calculation type is not supported  ### Other Remarks * Inserting a rate version before an existing version will set the new version&#39;s end date to the effective date of the subsequent version. * Null values are acceptable for use and demand unit costs. However, for chargeback bills to calculate correctly, these values must be provided.\n     * @param rateId Unique identifier of the rate schedule to receive the new version\n     * @param body The properties of the rate schedule version to be created\n     */\n    public createRateVersionWithHttpInfo(rateId: number, body?: RateVersionRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<RateVersionResponse>> {\n        const path = this.basePath + '/api/v3/rate/${rateId}/version'\n                    .replace('${' + 'rateId' + '}', String(rateId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'rateId' is not null or undefined\n        if (rateId === null || rateId === undefined) {\n            throw new Error('Required parameter rateId was null or undefined when calling createRateVersion.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<RateVersionResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Delete a version of a rate schedule\n     * ### Validation * The last remaining rate version may not be deleted  ### Other Remarks * When a rate version is deleted, if there is a preceding rate version, then its end date will be reset to the end date of the deleted rate version.\n     * @param rateId Unique identifier of the rate schedule to which the version being deleted belongs\n     * @param versionId Unique identifier of the rate schedule version to delete\n     */\n    public deleteRateVersionWithHttpInfo(rateId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/rate/${rateId}/version/${versionId}'\n                    .replace('${' + 'rateId' + '}', String(rateId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'rateId' is not null or undefined\n        if (rateId === null || rateId === undefined) {\n            throw new Error('Required parameter rateId was null or undefined when calling deleteRateVersion.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling deleteRateVersion.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Edit a rate\n     * \n     * @param rateId Unique identifier of the rate schedule to be edited\n     * @param body Updated properties of the rate schedule to be edited\n     */\n    public editRateWithHttpInfo(rateId: number, body?: RateEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<RateResponse>> {\n        const path = this.basePath + '/api/v3/rate/${rateId}'\n                    .replace('${' + 'rateId' + '}', String(rateId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'rateId' is not null or undefined\n        if (rateId === null || rateId === undefined) {\n            throw new Error('Required parameter rateId was null or undefined when calling editRate.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<RateResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edit a rate schedule version\n     * ### Validation * Effective date of the edited version     * Must be after the effective date of the previous version     * Must be prior to the effective date of the next version * Account and meter line items     * Subtotal calculation type is not supported  ### Other Remarks * Null values are acceptable for use and demand unit costs. However, for chargeback bills to calculate correctly, these values must be provided.\n     * @param rateId Unique identifier of the rate schedule whose version will be edited\n     * @param versionId Unique identifier of the rate schedule version to be edited\n     * @param body Updated properties of the rate schedule version to be edited\n     */\n    public editRateVersionWithHttpInfo(rateId: number, versionId: number, body?: RateVersionRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<RateVersionResponse>> {\n        const path = this.basePath + '/api/v3/rate/${rateId}/version/${versionId}'\n                    .replace('${' + 'rateId' + '}', String(rateId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'rateId' is not null or undefined\n        if (rateId === null || rateId === undefined) {\n            throw new Error('Required parameter rateId was null or undefined when calling editRateVersion.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling editRateVersion.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<RateVersionResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { EmissionRecordRequest } from '../model/emissionRecordRequest';\nimport { EmissionRecordResponse } from '../model/emissionRecordResponse';\nimport { GuidResponse } from '../model/guidResponse';\nimport { RecordImportProfileEdit } from '../model/recordImportProfileEdit';\nimport { RecordImportProfileRequest } from '../model/recordImportProfileRequest';\nimport { RecordImportProfileResponse } from '../model/recordImportProfileResponse';\nimport { RecordImportRequest } from '../model/recordImportRequest';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsRecordsCreatespanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Create an emission record\n     * \n     * @param body Data representing the record being created\n     */\n    public createEmissionRecord(body?: EmissionRecordRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EmissionRecordResponse> {\n        return this.createEmissionRecordWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EmissionRecordResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Creates an emission record import profile\n     * \n     * @param body Object containing settings for the new profile\n     */\n    public createRecordImportProfile(body?: RecordImportProfileRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<RecordImportProfileResponse> {\n        return this.createRecordImportProfileWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<RecordImportProfileResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes an emission record import profile\n     * \n     * @param profileId The identifier of the profile to delete\n     */\n    public deleteRecordImportProfile(profileId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteRecordImportProfileWithHttpInfo(profileId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits an emission record import profile\n     * \n     * @param profileId The identifier of the profile to edit\n     * @param body Object containing settings to change\n     */\n    public editRecordImportProfile(profileId: number, body?: RecordImportProfileEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<RecordImportProfileResponse> {\n        return this.editRecordImportProfileWithHttpInfo(profileId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<RecordImportProfileResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * This endpoint allows the import of a emission records import file. The file should be a base64-encoded delimited text file with a UTF8 character set.\n     * \n     * @param body DTO containing the data to import and the profile that defines the structure.\n     */\n    public importEmissionRecordsWithProfile(body?: RecordImportRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<GuidResponse> {\n        return this.importEmissionRecordsWithProfileWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<GuidResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Create an emission record\n     * \n     * @param body Data representing the record being created\n     */\n    public createEmissionRecordWithHttpInfo(body?: EmissionRecordRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EmissionRecordResponse>> {\n        const path = this.basePath + '/api/v202306/emissionRecord';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EmissionRecordResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Creates an emission record import profile\n     * \n     * @param body Object containing settings for the new profile\n     */\n    public createRecordImportProfileWithHttpInfo(body?: RecordImportProfileRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<RecordImportProfileResponse>> {\n        const path = this.basePath + '/api/v202403/import/record/profile';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<RecordImportProfileResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Deletes an emission record import profile\n     * \n     * @param profileId The identifier of the profile to delete\n     */\n    public deleteRecordImportProfileWithHttpInfo(profileId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202403/import/record/profile/${profileId}'\n                    .replace('${' + 'profileId' + '}', String(profileId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'profileId' is not null or undefined\n        if (profileId === null || profileId === undefined) {\n            throw new Error('Required parameter profileId was null or undefined when calling deleteRecordImportProfile.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Edits an emission record import profile\n     * \n     * @param profileId The identifier of the profile to edit\n     * @param body Object containing settings to change\n     */\n    public editRecordImportProfileWithHttpInfo(profileId: number, body?: RecordImportProfileEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<RecordImportProfileResponse>> {\n        const path = this.basePath + '/api/v202403/import/record/profile/${profileId}'\n                    .replace('${' + 'profileId' + '}', String(profileId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'profileId' is not null or undefined\n        if (profileId === null || profileId === undefined) {\n            throw new Error('Required parameter profileId was null or undefined when calling editRecordImportProfile.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<RecordImportProfileResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * This endpoint allows the import of a emission records import file. The file should be a base64-encoded delimited text file with a UTF8 character set.\n     * \n     * @param body DTO containing the data to import and the profile that defines the structure.\n     */\n    public importEmissionRecordsWithProfileWithHttpInfo(body?: RecordImportRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<GuidResponse>> {\n        const path = this.basePath + '/api/v202403/import/record';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<GuidResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsRecordsDeletespanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Delete an emission record\n     * \n     * @param emissionRecordId The Id of the emission record to delete\n     */\n    public deleteEmissionRecord(emissionRecordId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteEmissionRecordWithHttpInfo(emissionRecordId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Delete an emission record\n     * \n     * @param emissionRecordId The Id of the emission record to delete\n     */\n    public deleteEmissionRecordWithHttpInfo(emissionRecordId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202306/emissionRecord/${emissionRecordId}'\n                    .replace('${' + 'emissionRecordId' + '}', String(emissionRecordId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'emissionRecordId' is not null or undefined\n        if (emissionRecordId === null || emissionRecordId === undefined) {\n            throw new Error('Required parameter emissionRecordId was null or undefined when calling deleteEmissionRecord.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { EmissionRecordRequest } from '../model/emissionRecordRequest';\nimport { EmissionRecordResponse } from '../model/emissionRecordResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsRecordsEditspanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Edit an emission record\n     * \n     * @param emissionRecordId The Id of the emission record to edit\n     * @param body Data representing the emission record being edited\n     */\n    public editEmissionRecord(emissionRecordId: number, body?: EmissionRecordRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EmissionRecordResponse> {\n        return this.editEmissionRecordWithHttpInfo(emissionRecordId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EmissionRecordResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Edit an emission record\n     * \n     * @param emissionRecordId The Id of the emission record to edit\n     * @param body Data representing the emission record being edited\n     */\n    public editEmissionRecordWithHttpInfo(emissionRecordId: number, body?: EmissionRecordRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EmissionRecordResponse>> {\n        const path = this.basePath + '/api/v202306/emissionRecord/${emissionRecordId}'\n                    .replace('${' + 'emissionRecordId' + '}', String(emissionRecordId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'emissionRecordId' is not null or undefined\n        if (emissionRecordId === null || emissionRecordId === undefined) {\n            throw new Error('Required parameter emissionRecordId was null or undefined when calling editEmissionRecord.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EmissionRecordResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { EmissionRecordResponse } from '../model/emissionRecordResponse';\nimport { ListResponse } from '../model/listResponse';\nimport { RecordImportProfileResponse } from '../model/recordImportProfileResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsRecordsViewspanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Get the collection records list\n     * \n     * @param collectionId The collection identifier to retrieve records list for\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public collectionRecordList(collectionId: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ListResponse> {\n        return this.collectionRecordListWithHttpInfo(collectionId, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ListResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Export list data to excel spreadsheet format\n     * \n     * @param collectionId The collection to export records\n     */\n    public collectionRecordListExcelExport(collectionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.collectionRecordListExcelExportWithHttpInfo(collectionId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get the emission source records list\n     * \n     * @param emissionSourceId The emission source identifier to retrieve records list for\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public emissionSourceRecordList(emissionSourceId: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ListResponse> {\n        return this.emissionSourceRecordListWithHttpInfo(emissionSourceId, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ListResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Export list data to excel spreadsheet format\n     * \n     * @param emissionSourceId The emissionSource to export records\n     */\n    public emissionSourceRecordListExcelExport(emissionSourceId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.emissionSourceRecordListExcelExportWithHttpInfo(emissionSourceId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieve an emission record by ID\n     * \n     * @param emissionRecordId The Id of the emission record to retrieve\n     */\n    public getEmissionRecord(emissionRecordId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<EmissionRecordResponse> {\n        return this.getEmissionRecordWithHttpInfo(emissionRecordId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<EmissionRecordResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieve a list of emission records\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getEmissionRecords(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<EmissionRecordResponse>> {\n        return this.getEmissionRecordsWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<EmissionRecordResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get an emission record import profile\n     * \n     * @param profileId The identifier of the profile to get\n     */\n    public getRecordImportProfile(profileId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<RecordImportProfileResponse> {\n        return this.getRecordImportProfileWithHttpInfo(profileId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<RecordImportProfileResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get all emission record import profiles\n     * \n     */\n    public getRecordImportProfiles(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<RecordImportProfileResponse>> {\n        return this.getRecordImportProfilesWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<RecordImportProfileResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Get the collection records list\n     * \n     * @param collectionId The collection identifier to retrieve records list for\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public collectionRecordListWithHttpInfo(collectionId: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ListResponse>> {\n        const path = this.basePath + '/api/v3/collection/${collectionId}/list/record'\n                    .replace('${' + 'collectionId' + '}', String(collectionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'collectionId' is not null or undefined\n        if (collectionId === null || collectionId === undefined) {\n            throw new Error('Required parameter collectionId was null or undefined when calling collectionRecordList.');\n        }\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ListResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Export list data to excel spreadsheet format\n     * \n     * @param collectionId The collection to export records\n     */\n    public collectionRecordListExcelExportWithHttpInfo(collectionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/collection/${collectionId}/list/record/excelexport'\n                    .replace('${' + 'collectionId' + '}', String(collectionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'collectionId' is not null or undefined\n        if (collectionId === null || collectionId === undefined) {\n            throw new Error('Required parameter collectionId was null or undefined when calling collectionRecordListExcelExport.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get the emission source records list\n     * \n     * @param emissionSourceId The emission source identifier to retrieve records list for\n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public emissionSourceRecordListWithHttpInfo(emissionSourceId: number, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ListResponse>> {\n        const path = this.basePath + '/api/v3/emissionSource/${emissionSourceId}/list/record'\n                    .replace('${' + 'emissionSourceId' + '}', String(emissionSourceId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'emissionSourceId' is not null or undefined\n        if (emissionSourceId === null || emissionSourceId === undefined) {\n            throw new Error('Required parameter emissionSourceId was null or undefined when calling emissionSourceRecordList.');\n        }\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ListResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Export list data to excel spreadsheet format\n     * \n     * @param emissionSourceId The emissionSource to export records\n     */\n    public emissionSourceRecordListExcelExportWithHttpInfo(emissionSourceId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/emissionSource/${emissionSourceId}/list/record/excelexport'\n                    .replace('${' + 'emissionSourceId' + '}', String(emissionSourceId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'emissionSourceId' is not null or undefined\n        if (emissionSourceId === null || emissionSourceId === undefined) {\n            throw new Error('Required parameter emissionSourceId was null or undefined when calling emissionSourceRecordListExcelExport.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieve an emission record by ID\n     * \n     * @param emissionRecordId The Id of the emission record to retrieve\n     */\n    public getEmissionRecordWithHttpInfo(emissionRecordId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<EmissionRecordResponse>> {\n        const path = this.basePath + '/api/v202306/emissionRecord/${emissionRecordId}'\n                    .replace('${' + 'emissionRecordId' + '}', String(emissionRecordId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'emissionRecordId' is not null or undefined\n        if (emissionRecordId === null || emissionRecordId === undefined) {\n            throw new Error('Required parameter emissionRecordId was null or undefined when calling getEmissionRecord.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<EmissionRecordResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieve a list of emission records\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getEmissionRecordsWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<EmissionRecordResponse>>> {\n        const path = this.basePath + '/api/v202306/emissionRecord';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<EmissionRecordResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get an emission record import profile\n     * \n     * @param profileId The identifier of the profile to get\n     */\n    public getRecordImportProfileWithHttpInfo(profileId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<RecordImportProfileResponse>> {\n        const path = this.basePath + '/api/v202403/import/record/profile/${profileId}'\n                    .replace('${' + 'profileId' + '}', String(profileId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'profileId' is not null or undefined\n        if (profileId === null || profileId === undefined) {\n            throw new Error('Required parameter profileId was null or undefined when calling getRecordImportProfile.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<RecordImportProfileResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get all emission record import profiles\n     * \n     */\n    public getRecordImportProfilesWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<RecordImportProfileResponse>>> {\n        const path = this.basePath + '/api/v202403/import/record/profile';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<RecordImportProfileResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { IActionResult } from '../model/iActionResult';\nimport { OkResult } from '../model/okResult';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsReportAdministratorManagespanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * \n     * \n     */\n    public installReports(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<OkResult> {\n        return this.installReportsWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<OkResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * \n     * \n     */\n    public installReportsWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<OkResult>> {\n        const path = this.basePath + '/api/v3/report/install/latest';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<OkResult>(RequestMethod.Post, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { ReportGroupRequest } from '../model/reportGroupRequest';\nimport { ReportGroupResponse } from '../model/reportGroupResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsReportGroupsManagespanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * \n     * \n     * @param body \n     */\n    public createReportGroup(body?: ReportGroupRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ReportGroupResponse> {\n        return this.createReportGroupWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ReportGroupResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes a Report Group\n     * \n     * @param reportGroupId \n     */\n    public deleteReportGroup(reportGroupId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteReportGroupWithHttpInfo(reportGroupId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * \n     * \n     * @param reportGroupId \n     * @param body \n     */\n    public editReportGroup(reportGroupId: number, body?: ReportGroupRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ReportGroupResponse> {\n        return this.editReportGroupWithHttpInfo(reportGroupId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ReportGroupResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * \n     * \n     * @param body \n     */\n    public createReportGroupWithHttpInfo(body?: ReportGroupRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ReportGroupResponse>> {\n        const path = this.basePath + '/api/v3/report/reportgroup';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ReportGroupResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Deletes a Report Group\n     * \n     * @param reportGroupId \n     */\n    public deleteReportGroupWithHttpInfo(reportGroupId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/report/reportgroup/${reportGroupId}'\n                    .replace('${' + 'reportGroupId' + '}', String(reportGroupId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'reportGroupId' is not null or undefined\n        if (reportGroupId === null || reportGroupId === undefined) {\n            throw new Error('Required parameter reportGroupId was null or undefined when calling deleteReportGroup.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * \n     * \n     * @param reportGroupId \n     * @param body \n     */\n    public editReportGroupWithHttpInfo(reportGroupId: number, body?: ReportGroupRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ReportGroupResponse>> {\n        const path = this.basePath + '/api/v3/report/reportgroup/${reportGroupId}'\n                    .replace('${' + 'reportGroupId' + '}', String(reportGroupId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'reportGroupId' is not null or undefined\n        if (reportGroupId === null || reportGroupId === undefined) {\n            throw new Error('Required parameter reportGroupId was null or undefined when calling editReportGroup.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ReportGroupResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { DistributedReportsConfiguration } from '../model/distributedReportsConfiguration';\nimport { FilterEdit } from '../model/filterEdit';\nimport { FilterResponse } from '../model/filterResponse';\nimport { QuickReport } from '../model/quickReport';\nimport { ReportCreate } from '../model/reportCreate';\nimport { ReportEdit } from '../model/reportEdit';\nimport { ReportSubscriptionRequest } from '../model/reportSubscriptionRequest';\nimport { ReportSubscriptionScheduleTypeResponse } from '../model/reportSubscriptionScheduleTypeResponse';\nimport { ShareRequest } from '../model/shareRequest';\nimport { ShareResponse } from '../model/shareResponse';\nimport { SpecificReportResponse } from '../model/specificReportResponse';\nimport { ToggleVisible } from '../model/toggleVisible';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsReportsRunspanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Subscribe to a report and receive scheduled emails This must be a saved report that belongs to or is shared with the current user Only SSRS reports are supported\n     * \n     * @param specificReportId \n     * @param body \n     */\n    public createReportSubscription(specificReportId: number, body?: ReportSubscriptionRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<SpecificReportResponse> {\n        return this.createReportSubscriptionWithHttpInfo(specificReportId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<SpecificReportResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Save a specific report to Saved Reports\n     * \n     * @param specificReportId The specific report to save\n     * @param body The specific report create properties\n     */\n    public createSpecificReport(specificReportId: number, body?: ReportCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<SpecificReportResponse> {\n        return this.createSpecificReportWithHttpInfo(specificReportId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<SpecificReportResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete a report subscription This must be a subscription that belongs to the current user\n     * \n     * @param specificReportId \n     * @param reportSubscriptionId \n     */\n    public deleteReportSubscription(specificReportId: number, reportSubscriptionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteReportSubscriptionWithHttpInfo(specificReportId, reportSubscriptionId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * \n     * \n     * @param specificReportId \n     */\n    public deleteSpecificReport(specificReportId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteSpecificReportWithHttpInfo(specificReportId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Execute a report, save it in a given format, and email it to a list of recipients.  If distributing reports, returns a 204 No Content if onlySendIfData is set to True and the report generated no data;  returns a 200 and the generated report for download or an empty body if onlySendIfData is set to True\n     * \n     * @param specificReportId The ID of the specific report to run\n     * @param body Allows the user to run one report and optionally email it to one or more recipients. They can optionally specify whether or not the report(s) should be sent if they contain no data.\n     */\n    public distributeReport(specificReportId: number, body?: DistributedReportsConfiguration, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.distributeReportWithHttpInfo(specificReportId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit the filters for a specific report.\n     * \n     * @param specificReportId The specific report for which the filters are to be edited\n     * @param body The list of filters to apply\n     */\n    public editReportFilters(specificReportId: number, body?: Array<FilterEdit>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<FilterResponse>> {\n        return this.editReportFiltersWithHttpInfo(specificReportId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<FilterResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit a report subscription This must be a subscription that belongs to the current user\n     * \n     * @param specificReportId \n     * @param reportSubscriptionId \n     * @param body \n     */\n    public editReportSubscription(specificReportId: number, reportSubscriptionId: number, body?: ReportSubscriptionRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<SpecificReportResponse> {\n        return this.editReportSubscriptionWithHttpInfo(specificReportId, reportSubscriptionId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<SpecificReportResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit a specific report\n     * \n     * @param specificReportId The specific report to edit\n     * @param body The specific report edit properties\n     */\n    public editSpecificReport(specificReportId: number, body?: ReportEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<SpecificReportResponse> {\n        return this.editSpecificReportWithHttpInfo(specificReportId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<SpecificReportResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get the filters for a specific report.\n     * \n     * @param specificReportId The specific report for which the filters are to be retrieved\n     */\n    public getReportFilters(specificReportId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<FilterResponse>> {\n        return this.getReportFiltersWithHttpInfo(specificReportId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<FilterResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get sharing information for a report\n     * Only the user who created the report or a report administrator is permitted to get sharing details for a report.\n     * @param specificReportId The specific report for which to retrieve sharing information\n     */\n    public getReportSharingDetails(specificReportId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ShareResponse> {\n        return this.getReportSharingDetailsWithHttpInfo(specificReportId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ShareResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a list of all available report subscription schedule types, and their day indicator values\n     * \n     */\n    public getReportSubscriptionScheduleTypes(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<ReportSubscriptionScheduleTypeResponse>> {\n        return this.getReportSubscriptionScheduleTypesWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<ReportSubscriptionScheduleTypeResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a report by its specificReportID.\n     * \n     * @param specificReportId \n     */\n    public getSpecificReport(specificReportId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<SpecificReportResponse> {\n        return this.getSpecificReportWithHttpInfo(specificReportId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<SpecificReportResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a filterable list of installed, saved, and shared reports available to the current user.\n     * \n     * @param filter \n     */\n    public getSpecificReports(filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<SpecificReportResponse>> {\n        return this.getSpecificReportsWithHttpInfo(filter, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<SpecificReportResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Execute and email report subscriptions that are ready to be run\n     * \n     */\n    public processReportSubscriptions(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.processReportSubscriptionsWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Generates a \\&quot;quick report\\&quot; in the specified export format (or in its preferred export format if not specified) as identified by the provided report code and applying ONLY the filters supplied.\n     * \n     * @param body \n     */\n    public runQuickReport(body?: QuickReport, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.runQuickReportWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Run a report and download in the provided format\n     * \n     * @param specificReportId The ID of the specific report to run\n     * @param format The format in which the generated report should be downloaded. Supported options are [\\&quot;excel\\&quot;, \\&quot;csv\\&quot;, \\&quot;pdf\\&quot;, \\&quot;word\\&quot;]\n     */\n    public runReport(specificReportId: number, format?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.runReportWithHttpInfo(specificReportId, format, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Share a saved report with other users\n     * \n     * @param specificReportId ID of the saved report to share\n     * @param body Updated sharing details for the report\n     */\n    public shareSavedReport(specificReportId: number, body?: ShareRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<ShareResponse> {\n        return this.shareSavedReportWithHttpInfo(specificReportId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<ShareResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Update the visibility of a report for the current user This must be a report you can see Which means you must have created the report or have ReportAdministrator Manage permission and the report is shared at all or have SharedReports View permission and the report is shared with you\n     * \n     * @param specificReportId Specific dashboard\n     * @param body Set Visibility\n     */\n    public toggleSharedReportVisibility(specificReportId: number, body?: ToggleVisible, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<SpecificReportResponse> {\n        return this.toggleSharedReportVisibilityWithHttpInfo(specificReportId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<SpecificReportResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Subscribe to a report and receive scheduled emails This must be a saved report that belongs to or is shared with the current user Only SSRS reports are supported\n     * \n     * @param specificReportId \n     * @param body \n     */\n    public createReportSubscriptionWithHttpInfo(specificReportId: number, body?: ReportSubscriptionRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<SpecificReportResponse>> {\n        const path = this.basePath + '/api/v3/report/${specificReportId}/subscription'\n                    .replace('${' + 'specificReportId' + '}', String(specificReportId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificReportId' is not null or undefined\n        if (specificReportId === null || specificReportId === undefined) {\n            throw new Error('Required parameter specificReportId was null or undefined when calling createReportSubscription.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<SpecificReportResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Save a specific report to Saved Reports\n     * \n     * @param specificReportId The specific report to save\n     * @param body The specific report create properties\n     */\n    public createSpecificReportWithHttpInfo(specificReportId: number, body?: ReportCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<SpecificReportResponse>> {\n        const path = this.basePath + '/api/v3/report/${specificReportId}/copy'\n                    .replace('${' + 'specificReportId' + '}', String(specificReportId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificReportId' is not null or undefined\n        if (specificReportId === null || specificReportId === undefined) {\n            throw new Error('Required parameter specificReportId was null or undefined when calling createSpecificReport.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<SpecificReportResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Delete a report subscription This must be a subscription that belongs to the current user\n     * \n     * @param specificReportId \n     * @param reportSubscriptionId \n     */\n    public deleteReportSubscriptionWithHttpInfo(specificReportId: number, reportSubscriptionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/report/${specificReportId}/subscription/${reportSubscriptionId}'\n                    .replace('${' + 'specificReportId' + '}', String(specificReportId))\n                    .replace('${' + 'reportSubscriptionId' + '}', String(reportSubscriptionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificReportId' is not null or undefined\n        if (specificReportId === null || specificReportId === undefined) {\n            throw new Error('Required parameter specificReportId was null or undefined when calling deleteReportSubscription.');\n        }\n        // verify required parameter 'reportSubscriptionId' is not null or undefined\n        if (reportSubscriptionId === null || reportSubscriptionId === undefined) {\n            throw new Error('Required parameter reportSubscriptionId was null or undefined when calling deleteReportSubscription.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * \n     * \n     * @param specificReportId \n     */\n    public deleteSpecificReportWithHttpInfo(specificReportId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/report/${specificReportId}'\n                    .replace('${' + 'specificReportId' + '}', String(specificReportId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificReportId' is not null or undefined\n        if (specificReportId === null || specificReportId === undefined) {\n            throw new Error('Required parameter specificReportId was null or undefined when calling deleteSpecificReport.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Execute a report, save it in a given format, and email it to a list of recipients.  If distributing reports, returns a 204 No Content if onlySendIfData is set to True and the report generated no data;  returns a 200 and the generated report for download or an empty body if onlySendIfData is set to True\n     * \n     * @param specificReportId The ID of the specific report to run\n     * @param body Allows the user to run one report and optionally email it to one or more recipients. They can optionally specify whether or not the report(s) should be sent if they contain no data.\n     */\n    public distributeReportWithHttpInfo(specificReportId: number, body?: DistributedReportsConfiguration, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/report/exec/${specificReportId}'\n                    .replace('${' + 'specificReportId' + '}', String(specificReportId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificReportId' is not null or undefined\n        if (specificReportId === null || specificReportId === undefined) {\n            throw new Error('Required parameter specificReportId was null or undefined when calling distributeReport.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Edit the filters for a specific report.\n     * \n     * @param specificReportId The specific report for which the filters are to be edited\n     * @param body The list of filters to apply\n     */\n    public editReportFiltersWithHttpInfo(specificReportId: number, body?: Array<FilterEdit>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<FilterResponse>>> {\n        const path = this.basePath + '/api/v3/report/${specificReportId}/filter'\n                    .replace('${' + 'specificReportId' + '}', String(specificReportId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificReportId' is not null or undefined\n        if (specificReportId === null || specificReportId === undefined) {\n            throw new Error('Required parameter specificReportId was null or undefined when calling editReportFilters.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<FilterResponse>>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edit a report subscription This must be a subscription that belongs to the current user\n     * \n     * @param specificReportId \n     * @param reportSubscriptionId \n     * @param body \n     */\n    public editReportSubscriptionWithHttpInfo(specificReportId: number, reportSubscriptionId: number, body?: ReportSubscriptionRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<SpecificReportResponse>> {\n        const path = this.basePath + '/api/v3/report/${specificReportId}/subscription/${reportSubscriptionId}'\n                    .replace('${' + 'specificReportId' + '}', String(specificReportId))\n                    .replace('${' + 'reportSubscriptionId' + '}', String(reportSubscriptionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificReportId' is not null or undefined\n        if (specificReportId === null || specificReportId === undefined) {\n            throw new Error('Required parameter specificReportId was null or undefined when calling editReportSubscription.');\n        }\n        // verify required parameter 'reportSubscriptionId' is not null or undefined\n        if (reportSubscriptionId === null || reportSubscriptionId === undefined) {\n            throw new Error('Required parameter reportSubscriptionId was null or undefined when calling editReportSubscription.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<SpecificReportResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edit a specific report\n     * \n     * @param specificReportId The specific report to edit\n     * @param body The specific report edit properties\n     */\n    public editSpecificReportWithHttpInfo(specificReportId: number, body?: ReportEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<SpecificReportResponse>> {\n        const path = this.basePath + '/api/v3/report/${specificReportId}'\n                    .replace('${' + 'specificReportId' + '}', String(specificReportId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificReportId' is not null or undefined\n        if (specificReportId === null || specificReportId === undefined) {\n            throw new Error('Required parameter specificReportId was null or undefined when calling editSpecificReport.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<SpecificReportResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Get the filters for a specific report.\n     * \n     * @param specificReportId The specific report for which the filters are to be retrieved\n     */\n    public getReportFiltersWithHttpInfo(specificReportId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<FilterResponse>>> {\n        const path = this.basePath + '/api/v3/report/${specificReportId}/filter'\n                    .replace('${' + 'specificReportId' + '}', String(specificReportId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificReportId' is not null or undefined\n        if (specificReportId === null || specificReportId === undefined) {\n            throw new Error('Required parameter specificReportId was null or undefined when calling getReportFilters.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<FilterResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get sharing information for a report\n     * Only the user who created the report or a report administrator is permitted to get sharing details for a report.\n     * @param specificReportId The specific report for which to retrieve sharing information\n     */\n    public getReportSharingDetailsWithHttpInfo(specificReportId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ShareResponse>> {\n        const path = this.basePath + '/api/v3/report/${specificReportId}/share'\n                    .replace('${' + 'specificReportId' + '}', String(specificReportId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificReportId' is not null or undefined\n        if (specificReportId === null || specificReportId === undefined) {\n            throw new Error('Required parameter specificReportId was null or undefined when calling getReportSharingDetails.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ShareResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a list of all available report subscription schedule types, and their day indicator values\n     * \n     */\n    public getReportSubscriptionScheduleTypesWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<ReportSubscriptionScheduleTypeResponse>>> {\n        const path = this.basePath + '/api/v3/report/subscription/scheduletype';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<ReportSubscriptionScheduleTypeResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a report by its specificReportID.\n     * \n     * @param specificReportId \n     */\n    public getSpecificReportWithHttpInfo(specificReportId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<SpecificReportResponse>> {\n        const path = this.basePath + '/api/v3/report/${specificReportId}'\n                    .replace('${' + 'specificReportId' + '}', String(specificReportId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificReportId' is not null or undefined\n        if (specificReportId === null || specificReportId === undefined) {\n            throw new Error('Required parameter specificReportId was null or undefined when calling getSpecificReport.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<SpecificReportResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a filterable list of installed, saved, and shared reports available to the current user.\n     * \n     * @param filter \n     */\n    public getSpecificReportsWithHttpInfo(filter?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<SpecificReportResponse>>> {\n        const path = this.basePath + '/api/v3/report';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<SpecificReportResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Execute and email report subscriptions that are ready to be run\n     * \n     */\n    public processReportSubscriptionsWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/report/exec/subscription';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Generates a \\&quot;quick report\\&quot; in the specified export format (or in its preferred export format if not specified) as identified by the provided report code and applying ONLY the filters supplied.\n     * \n     * @param body \n     */\n    public runQuickReportWithHttpInfo(body?: QuickReport, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/report/quick';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Run a report and download in the provided format\n     * \n     * @param specificReportId The ID of the specific report to run\n     * @param format The format in which the generated report should be downloaded. Supported options are [\\&quot;excel\\&quot;, \\&quot;csv\\&quot;, \\&quot;pdf\\&quot;, \\&quot;word\\&quot;]\n     */\n    public runReportWithHttpInfo(specificReportId: number, format?: string, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/report/exec/${specificReportId}'\n                    .replace('${' + 'specificReportId' + '}', String(specificReportId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificReportId' is not null or undefined\n        if (specificReportId === null || specificReportId === undefined) {\n            throw new Error('Required parameter specificReportId was null or undefined when calling runReport.');\n        }\n        if (format !== undefined) {\n            queryParameters = queryParameters.set('format', <any>format);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Share a saved report with other users\n     * \n     * @param specificReportId ID of the saved report to share\n     * @param body Updated sharing details for the report\n     */\n    public shareSavedReportWithHttpInfo(specificReportId: number, body?: ShareRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<ShareResponse>> {\n        const path = this.basePath + '/api/v3/report/${specificReportId}/share'\n                    .replace('${' + 'specificReportId' + '}', String(specificReportId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificReportId' is not null or undefined\n        if (specificReportId === null || specificReportId === undefined) {\n            throw new Error('Required parameter specificReportId was null or undefined when calling shareSavedReport.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<ShareResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Update the visibility of a report for the current user This must be a report you can see Which means you must have created the report or have ReportAdministrator Manage permission and the report is shared at all or have SharedReports View permission and the report is shared with you\n     * \n     * @param specificReportId Specific dashboard\n     * @param body Set Visibility\n     */\n    public toggleSharedReportVisibilityWithHttpInfo(specificReportId: number, body?: ToggleVisible, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<SpecificReportResponse>> {\n        const path = this.basePath + '/api/v3/report/${specificReportId}/visible'\n                    .replace('${' + 'specificReportId' + '}', String(specificReportId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'specificReportId' is not null or undefined\n        if (specificReportId === null || specificReportId === undefined) {\n            throw new Error('Required parameter specificReportId was null or undefined when calling toggleSharedReportVisibility.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<SpecificReportResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { HiddenRequest } from '../model/hiddenRequest';\nimport { SystemUserRoleResponse } from '../model/systemUserRoleResponse';\nimport { SystemUserRoleWithHiddenRequest } from '../model/systemUserRoleWithHiddenRequest';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsRolesManagespanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * \n     * \n     * @param body \n     */\n    public createUserRole(body?: SystemUserRoleWithHiddenRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<SystemUserRoleResponse> {\n        return this.createUserRoleWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<SystemUserRoleResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes a user role\n     * \n     * @param userRoleId The identifier for the role being deleted\n     */\n    public deleteUserRole(userRoleId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteUserRoleWithHttpInfo(userRoleId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * \n     * \n     * @param userRoleId \n     * @param body \n     */\n    public editUserRole(userRoleId: number, body?: SystemUserRoleWithHiddenRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<SystemUserRoleResponse> {\n        return this.editUserRoleWithHttpInfo(userRoleId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<SystemUserRoleResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * \n     * \n     * @param userRoleId \n     * @param body \n     */\n    public setUserRoleHidden(userRoleId: number, body?: HiddenRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<SystemUserRoleResponse> {\n        return this.setUserRoleHiddenWithHttpInfo(userRoleId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<SystemUserRoleResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * \n     * \n     * @param body \n     */\n    public createUserRoleWithHttpInfo(body?: SystemUserRoleWithHiddenRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<SystemUserRoleResponse>> {\n        const path = this.basePath + '/api/v202206/userrole';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<SystemUserRoleResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Deletes a user role\n     * \n     * @param userRoleId The identifier for the role being deleted\n     */\n    public deleteUserRoleWithHttpInfo(userRoleId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/userrole/${userRoleId}'\n                    .replace('${' + 'userRoleId' + '}', String(userRoleId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'userRoleId' is not null or undefined\n        if (userRoleId === null || userRoleId === undefined) {\n            throw new Error('Required parameter userRoleId was null or undefined when calling deleteUserRole.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * \n     * \n     * @param userRoleId \n     * @param body \n     */\n    public editUserRoleWithHttpInfo(userRoleId: number, body?: SystemUserRoleWithHiddenRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<SystemUserRoleResponse>> {\n        const path = this.basePath + '/api/v202206/userrole/${userRoleId}'\n                    .replace('${' + 'userRoleId' + '}', String(userRoleId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'userRoleId' is not null or undefined\n        if (userRoleId === null || userRoleId === undefined) {\n            throw new Error('Required parameter userRoleId was null or undefined when calling editUserRole.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<SystemUserRoleResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * \n     * \n     * @param userRoleId \n     * @param body \n     */\n    public setUserRoleHiddenWithHttpInfo(userRoleId: number, body?: HiddenRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<SystemUserRoleResponse>> {\n        const path = this.basePath + '/api/v202206/userrole/${userRoleId}/hidden'\n                    .replace('${' + 'userRoleId' + '}', String(userRoleId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'userRoleId' is not null or undefined\n        if (userRoleId === null || userRoleId === undefined) {\n            throw new Error('Required parameter userRoleId was null or undefined when calling setUserRoleHidden.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<SystemUserRoleResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { OtherSavingsCategory } from '../model/otherSavingsCategory';\nimport { OtherSavingsCategoryRequest } from '../model/otherSavingsCategoryRequest';\nimport { OtherSavingsRequest } from '../model/otherSavingsRequest';\nimport { OtherSavingsResponse } from '../model/otherSavingsResponse';\nimport { SpecialAdjustmentCreate } from '../model/specialAdjustmentCreate';\nimport { SpecialAdjustmentEdit } from '../model/specialAdjustmentEdit';\nimport { SpecialAdjustmentResponse } from '../model/specialAdjustmentResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsSavingsAdjustmentsManagespanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Create an other savings adjustment Meter Cost Avoidance Savings will be re-calculated\n     * \n     * @param meterId The meter for which the other savings is being created\n     * @param body Data representing the other savings adjustment being created\n     */\n    public createOtherSavings(meterId: number, body?: OtherSavingsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<OtherSavingsResponse> {\n        return this.createOtherSavingsWithHttpInfo(meterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<OtherSavingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Create other savings category\n     * \n     * @param body Data representing the other saving category being created\n     */\n    public createOtherSavingsCategory(body?: OtherSavingsCategoryRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<OtherSavingsCategory> {\n        return this.createOtherSavingsCategoryWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<OtherSavingsCategory>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Create a new special adjustment Meter Cost Avoidance Savings will be re-calculated\n     * \n     * @param meterId The meter for which to create a special adjustment\n     * @param body Data representing the special adjustment being created\n     */\n    public createSpecialAdjustment(meterId: number, body?: SpecialAdjustmentCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<SpecialAdjustmentResponse> {\n        return this.createSpecialAdjustmentWithHttpInfo(meterId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<SpecialAdjustmentResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete an other savings adjustment\n     * \n     * @param meterId The meter for which the other savings is being deleted\n     * @param otherSavingsId The other saving identifier which is being deleted\n     */\n    public deleteOtherSavings(meterId: number, otherSavingsId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteOtherSavingsWithHttpInfo(meterId, otherSavingsId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete a special adjustment Meter Cost Avoidance Savings will be re-calculated\n     * \n     * @param meterId The meter from which to delete the special adjustment\n     * @param specialAdjustmentId The special adjustment to delete\n     */\n    public deleteSpecialAdjustmentById(meterId: number, specialAdjustmentId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteSpecialAdjustmentByIdWithHttpInfo(meterId, specialAdjustmentId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit an other savings adjustment Meter Cost Avoidance Savings will be re-calculated\n     * \n     * @param meterId The meter whose other savings is being edited\n     * @param otherSavingsId The other savings to edit\n     * @param body Data representing the other savings adjustment being edited\n     */\n    public editOtherSavings(meterId: number, otherSavingsId: number, body?: OtherSavingsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<OtherSavingsResponse> {\n        return this.editOtherSavingsWithHttpInfo(meterId, otherSavingsId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<OtherSavingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit a special adjustment Meter Cost Avoidance Savings will be re-calculated\n     * \n     * @param meterId The meter with the special adjustment to edit\n     * @param specialAdjustmentId The special adjustment to edit\n     * @param body Data representing the special adjustment being edited\n     */\n    public editSpecialAdjustment(meterId: number, specialAdjustmentId: number, body?: SpecialAdjustmentEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<SpecialAdjustmentResponse> {\n        return this.editSpecialAdjustmentWithHttpInfo(meterId, specialAdjustmentId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<SpecialAdjustmentResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Create an other savings adjustment Meter Cost Avoidance Savings will be re-calculated\n     * \n     * @param meterId The meter for which the other savings is being created\n     * @param body Data representing the other savings adjustment being created\n     */\n    public createOtherSavingsWithHttpInfo(meterId: number, body?: OtherSavingsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<OtherSavingsResponse>> {\n        const path = this.basePath + '/api/v3/savings/meter/${meterId}/adjustment/othersavings'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling createOtherSavings.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<OtherSavingsResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Create other savings category\n     * \n     * @param body Data representing the other saving category being created\n     */\n    public createOtherSavingsCategoryWithHttpInfo(body?: OtherSavingsCategoryRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<OtherSavingsCategory>> {\n        const path = this.basePath + '/api/v3/savings/adjustment/othersavings/category';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<OtherSavingsCategory>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Create a new special adjustment Meter Cost Avoidance Savings will be re-calculated\n     * \n     * @param meterId The meter for which to create a special adjustment\n     * @param body Data representing the special adjustment being created\n     */\n    public createSpecialAdjustmentWithHttpInfo(meterId: number, body?: SpecialAdjustmentCreate, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<SpecialAdjustmentResponse>> {\n        const path = this.basePath + '/api/v3/savings/meter/${meterId}/adjustment/special'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling createSpecialAdjustment.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<SpecialAdjustmentResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Delete an other savings adjustment\n     * \n     * @param meterId The meter for which the other savings is being deleted\n     * @param otherSavingsId The other saving identifier which is being deleted\n     */\n    public deleteOtherSavingsWithHttpInfo(meterId: number, otherSavingsId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/savings/meter/${meterId}/adjustment/othersavings/${otherSavingsId}'\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'otherSavingsId' + '}', String(otherSavingsId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling deleteOtherSavings.');\n        }\n        // verify required parameter 'otherSavingsId' is not null or undefined\n        if (otherSavingsId === null || otherSavingsId === undefined) {\n            throw new Error('Required parameter otherSavingsId was null or undefined when calling deleteOtherSavings.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Delete a special adjustment Meter Cost Avoidance Savings will be re-calculated\n     * \n     * @param meterId The meter from which to delete the special adjustment\n     * @param specialAdjustmentId The special adjustment to delete\n     */\n    public deleteSpecialAdjustmentByIdWithHttpInfo(meterId: number, specialAdjustmentId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/savings/meter/${meterId}/adjustment/special/${specialAdjustmentId}'\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'specialAdjustmentId' + '}', String(specialAdjustmentId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling deleteSpecialAdjustmentById.');\n        }\n        // verify required parameter 'specialAdjustmentId' is not null or undefined\n        if (specialAdjustmentId === null || specialAdjustmentId === undefined) {\n            throw new Error('Required parameter specialAdjustmentId was null or undefined when calling deleteSpecialAdjustmentById.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Edit an other savings adjustment Meter Cost Avoidance Savings will be re-calculated\n     * \n     * @param meterId The meter whose other savings is being edited\n     * @param otherSavingsId The other savings to edit\n     * @param body Data representing the other savings adjustment being edited\n     */\n    public editOtherSavingsWithHttpInfo(meterId: number, otherSavingsId: number, body?: OtherSavingsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<OtherSavingsResponse>> {\n        const path = this.basePath + '/api/v3/savings/meter/${meterId}/adjustment/othersavings/${otherSavingsId}'\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'otherSavingsId' + '}', String(otherSavingsId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling editOtherSavings.');\n        }\n        // verify required parameter 'otherSavingsId' is not null or undefined\n        if (otherSavingsId === null || otherSavingsId === undefined) {\n            throw new Error('Required parameter otherSavingsId was null or undefined when calling editOtherSavings.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<OtherSavingsResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edit a special adjustment Meter Cost Avoidance Savings will be re-calculated\n     * \n     * @param meterId The meter with the special adjustment to edit\n     * @param specialAdjustmentId The special adjustment to edit\n     * @param body Data representing the special adjustment being edited\n     */\n    public editSpecialAdjustmentWithHttpInfo(meterId: number, specialAdjustmentId: number, body?: SpecialAdjustmentEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<SpecialAdjustmentResponse>> {\n        const path = this.basePath + '/api/v3/savings/meter/${meterId}/adjustment/special/${specialAdjustmentId}'\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'specialAdjustmentId' + '}', String(specialAdjustmentId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling editSpecialAdjustment.');\n        }\n        // verify required parameter 'specialAdjustmentId' is not null or undefined\n        if (specialAdjustmentId === null || specialAdjustmentId === undefined) {\n            throw new Error('Required parameter specialAdjustmentId was null or undefined when calling editSpecialAdjustment.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<SpecialAdjustmentResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { OtherSavingsCategory } from '../model/otherSavingsCategory';\nimport { OtherSavingsResponse } from '../model/otherSavingsResponse';\nimport { SpecialAdjustmentResponse } from '../model/specialAdjustmentResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsSavingsAdjustmentsViewspanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Get a other savings for a meter\n     * \n     * @param meterId The meter for which the other savings are being retrieved\n     */\n    public getAllOtherSavings(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<OtherSavingsResponse>> {\n        return this.getAllOtherSavingsWithHttpInfo(meterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<OtherSavingsResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get one other savings for a meter\n     * \n     * @param meterId The meter for which the other savings are being retrieved\n     * @param otherSavingsId The identifier for the other savings record which is being retrieved\n     */\n    public getOneOtherSavings(meterId: number, otherSavingsId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<OtherSavingsResponse> {\n        return this.getOneOtherSavingsWithHttpInfo(meterId, otherSavingsId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<OtherSavingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get other savings categories\n     * \n     */\n    public getOtherSavingsCategories(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<OtherSavingsCategory>> {\n        return this.getOtherSavingsCategoriesWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<OtherSavingsCategory>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a single special adjustment by its unique ID\n     * \n     * @param meterId The meter for which to return the special adjustment\n     * @param specialAdjustmentId Unique ID of the special adjustment to return\n     */\n    public getSpecialAdjustment(meterId: number, specialAdjustmentId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<SpecialAdjustmentResponse> {\n        return this.getSpecialAdjustmentWithHttpInfo(meterId, specialAdjustmentId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<SpecialAdjustmentResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get all the special adjustments for the meter\n     * \n     * @param meterId The meter for which to return special adjustment\n     */\n    public getSpecialAdjustments(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<SpecialAdjustmentResponse>> {\n        return this.getSpecialAdjustmentsWithHttpInfo(meterId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<SpecialAdjustmentResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Get a other savings for a meter\n     * \n     * @param meterId The meter for which the other savings are being retrieved\n     */\n    public getAllOtherSavingsWithHttpInfo(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<OtherSavingsResponse>>> {\n        const path = this.basePath + '/api/v3/savings/meter/${meterId}/adjustment/othersavings'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getAllOtherSavings.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<OtherSavingsResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get one other savings for a meter\n     * \n     * @param meterId The meter for which the other savings are being retrieved\n     * @param otherSavingsId The identifier for the other savings record which is being retrieved\n     */\n    public getOneOtherSavingsWithHttpInfo(meterId: number, otherSavingsId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<OtherSavingsResponse>> {\n        const path = this.basePath + '/api/v3/savings/meter/${meterId}/adjustment/othersavings/${otherSavingsId}'\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'otherSavingsId' + '}', String(otherSavingsId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getOneOtherSavings.');\n        }\n        // verify required parameter 'otherSavingsId' is not null or undefined\n        if (otherSavingsId === null || otherSavingsId === undefined) {\n            throw new Error('Required parameter otherSavingsId was null or undefined when calling getOneOtherSavings.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<OtherSavingsResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get other savings categories\n     * \n     */\n    public getOtherSavingsCategoriesWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<OtherSavingsCategory>>> {\n        const path = this.basePath + '/api/v3/savings/adjustment/othersavings/category';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<OtherSavingsCategory>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a single special adjustment by its unique ID\n     * \n     * @param meterId The meter for which to return the special adjustment\n     * @param specialAdjustmentId Unique ID of the special adjustment to return\n     */\n    public getSpecialAdjustmentWithHttpInfo(meterId: number, specialAdjustmentId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<SpecialAdjustmentResponse>> {\n        const path = this.basePath + '/api/v3/savings/meter/${meterId}/adjustment/special/${specialAdjustmentId}'\n                    .replace('${' + 'meterId' + '}', String(meterId))\n                    .replace('${' + 'specialAdjustmentId' + '}', String(specialAdjustmentId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getSpecialAdjustment.');\n        }\n        // verify required parameter 'specialAdjustmentId' is not null or undefined\n        if (specialAdjustmentId === null || specialAdjustmentId === undefined) {\n            throw new Error('Required parameter specialAdjustmentId was null or undefined when calling getSpecialAdjustment.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<SpecialAdjustmentResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get all the special adjustments for the meter\n     * \n     * @param meterId The meter for which to return special adjustment\n     */\n    public getSpecialAdjustmentsWithHttpInfo(meterId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<SpecialAdjustmentResponse>>> {\n        const path = this.basePath + '/api/v3/savings/meter/${meterId}/adjustment/special'\n                    .replace('${' + 'meterId' + '}', String(meterId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'meterId' is not null or undefined\n        if (meterId === null || meterId === undefined) {\n            throw new Error('Required parameter meterId was null or undefined when calling getSpecialAdjustments.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<SpecialAdjustmentResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { CalculateSavingsRequest } from '../model/calculateSavingsRequest';\nimport { CostAvoidanceTask } from '../model/costAvoidanceTask';\nimport { FilterResponse } from '../model/filterResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsSavingsEngineRunspanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Calculate savings for the meters that match the filter conditions, using the provided settings\n     * \n     * @param body Settings and filter conditions for savings processing\n     */\n    public calculateSavings(body?: CalculateSavingsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CostAvoidanceTask> {\n        return this.calculateSavingsWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CostAvoidanceTask>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Return available filters for Cost Avoidance processors Filters: - Commodity ID - Commodity Name - Meter Group Name - Building Group Name - Topmost Place Code - Topmost Place Name\n     * \n     */\n    public getCostAvoidanceFilters(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<FilterResponse>> {\n        return this.getCostAvoidanceFiltersWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<FilterResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Calculate savings for the meters that match the filter conditions, using the provided settings\n     * \n     * @param body Settings and filter conditions for savings processing\n     */\n    public calculateSavingsWithHttpInfo(body?: CalculateSavingsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CostAvoidanceTask>> {\n        const path = this.basePath + '/api/v3/savings/exec';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CostAvoidanceTask>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Return available filters for Cost Avoidance processors Filters: - Commodity ID - Commodity Name - Meter Group Name - Building Group Name - Topmost Place Code - Topmost Place Name\n     * \n     */\n    public getCostAvoidanceFiltersWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<FilterResponse>>> {\n        const path = this.basePath + '/api/v3/savings/filters';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<FilterResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { CommodityCategoryRequest } from '../model/commodityCategoryRequest';\nimport { CommodityCategoryResponse } from '../model/commodityCategoryResponse';\nimport { CommodityEditRequest } from '../model/commodityEditRequest';\nimport { CommodityRequest } from '../model/commodityRequest';\nimport { CommodityResponse } from '../model/commodityResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsUnitSystemSettingsManagespanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Creates a commodity\n     * \n     * @param body Data representing the commodity being created\n     */\n    public createCommodity(body?: CommodityRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CommodityResponse> {\n        return this.createCommodityWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CommodityResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Creates a commodity category\n     * \n     * @param body Data representing the commodity category being created\n     */\n    public createCommodityCategory(body?: CommodityCategoryRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CommodityCategoryResponse> {\n        return this.createCommodityCategoryWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CommodityCategoryResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes a commodity\n     * \n     * @param commodityId The commodity Id\n     */\n    public deleteCommodity(commodityId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteCommodityWithHttpInfo(commodityId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Deletes a commodity category\n     * \n     * @param commodityCategoryId The commodity category identifier\n     */\n    public deleteCommodityCategory(commodityCategoryId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteCommodityCategoryWithHttpInfo(commodityCategoryId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits a commodity\n     * \n     * @param commodityId The commodity Id\n     * @param body Data that will be used to update the commodity\n     */\n    public editCommodity(commodityId: number, body?: CommodityEditRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CommodityResponse> {\n        return this.editCommodityWithHttpInfo(commodityId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CommodityResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits a commodity category\n     * \n     * @param commodityCategoryId The commodity category identifier\n     * @param body Data representing the commodity category being created\n     */\n    public editCommodityCategory(commodityCategoryId: number, body?: CommodityCategoryRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CommodityCategoryResponse> {\n        return this.editCommodityCategoryWithHttpInfo(commodityCategoryId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CommodityCategoryResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Creates a commodity\n     * \n     * @param body Data representing the commodity being created\n     */\n    public createCommodityWithHttpInfo(body?: CommodityRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CommodityResponse>> {\n        const path = this.basePath + '/api/v202410/commodity';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CommodityResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Creates a commodity category\n     * \n     * @param body Data representing the commodity category being created\n     */\n    public createCommodityCategoryWithHttpInfo(body?: CommodityCategoryRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CommodityCategoryResponse>> {\n        const path = this.basePath + '/api/v202402/commodityCategory';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CommodityCategoryResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Deletes a commodity\n     * \n     * @param commodityId The commodity Id\n     */\n    public deleteCommodityWithHttpInfo(commodityId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202304/commodity/${commodityId}'\n                    .replace('${' + 'commodityId' + '}', String(commodityId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'commodityId' is not null or undefined\n        if (commodityId === null || commodityId === undefined) {\n            throw new Error('Required parameter commodityId was null or undefined when calling deleteCommodity.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Deletes a commodity category\n     * \n     * @param commodityCategoryId The commodity category identifier\n     */\n    public deleteCommodityCategoryWithHttpInfo(commodityCategoryId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202402/commodityCategory/${commodityCategoryId}'\n                    .replace('${' + 'commodityCategoryId' + '}', String(commodityCategoryId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'commodityCategoryId' is not null or undefined\n        if (commodityCategoryId === null || commodityCategoryId === undefined) {\n            throw new Error('Required parameter commodityCategoryId was null or undefined when calling deleteCommodityCategory.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Edits a commodity\n     * \n     * @param commodityId The commodity Id\n     * @param body Data that will be used to update the commodity\n     */\n    public editCommodityWithHttpInfo(commodityId: number, body?: CommodityEditRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CommodityResponse>> {\n        const path = this.basePath + '/api/v202410/commodity/${commodityId}'\n                    .replace('${' + 'commodityId' + '}', String(commodityId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'commodityId' is not null or undefined\n        if (commodityId === null || commodityId === undefined) {\n            throw new Error('Required parameter commodityId was null or undefined when calling editCommodity.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CommodityResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edits a commodity category\n     * \n     * @param commodityCategoryId The commodity category identifier\n     * @param body Data representing the commodity category being created\n     */\n    public editCommodityCategoryWithHttpInfo(commodityCategoryId: number, body?: CommodityCategoryRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CommodityCategoryResponse>> {\n        const path = this.basePath + '/api/v202402/commodityCategory/${commodityCategoryId}'\n                    .replace('${' + 'commodityCategoryId' + '}', String(commodityCategoryId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'commodityCategoryId' is not null or undefined\n        if (commodityCategoryId === null || commodityCategoryId === undefined) {\n            throw new Error('Required parameter commodityCategoryId was null or undefined when calling editCommodityCategory.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CommodityCategoryResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { NotificationSettingsResponse } from '../model/notificationSettingsResponse';\nimport { NotificationSystemSettingsRequest } from '../model/notificationSystemSettingsRequest';\nimport { UserCreateRequest } from '../model/userCreateRequest';\nimport { UserEditRequest } from '../model/userEditRequest';\nimport { UserGroupRequest } from '../model/userGroupRequest';\nimport { UserGroupResponse } from '../model/userGroupResponse';\nimport { UserResponse } from '../model/userResponse';\nimport { UserRoleRequest } from '../model/userRoleRequest';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsUsersAndUserGroupsManagespanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Create a new user. Requires Manage permission for Users &amp; Roles\n     * \n     * @param body The object defining the properties for the new user\n     */\n    public createUser(body?: UserCreateRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UserResponse> {\n        return this.createUserWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UserResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Create a user group\n     * \n     * @param body Data representing the user group being created\n     */\n    public createUserGroup(body?: UserGroupRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UserGroupResponse> {\n        return this.createUserGroupWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UserGroupResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Delete a user group\n     * \n     * @param userGroupId Id of the user group to delete\n     */\n    public deleteUserGroup(userGroupId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteUserGroupWithHttpInfo(userGroupId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit a system user&#39;s role.\n     * \n     * @param userId \n     * @param body \n     */\n    public editSystemUsersRole(userId: number, body?: UserRoleRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UserResponse> {\n        return this.editSystemUsersRoleWithHttpInfo(userId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UserResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit an existing user. Requires Manage permission for Users &amp; Roles. Please note that password is optional; all other items are required. MaxApprovalAmount may be null; if there is an existing value and null is passed, the existing value will be overwritten.\n     * \n     * @param userId The ID of the user to edit\n     * @param body The object defining the updated properties of the existing user.\n     */\n    public editUser(userId: number, body?: UserEditRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UserResponse> {\n        return this.editUserWithHttpInfo(userId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UserResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edit a user group\n     * \n     * @param userGroupId Id of the user group to edit\n     * @param body Data representing the user group being edited\n     */\n    public editUserGroup(userGroupId: number, body?: UserGroupRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UserGroupResponse> {\n        return this.editUserGroupWithHttpInfo(userGroupId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UserGroupResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Update the default notification settings assigned to new users\n     * \n     * @param body Values to update the system notification settings.  If a setting is not passed it&#39;s value is not updated.\n     */\n    public updateNotificationSystemSettings(body?: NotificationSystemSettingsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<NotificationSettingsResponse> {\n        return this.updateNotificationSystemSettingsWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<NotificationSettingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Create a new user. Requires Manage permission for Users &amp; Roles\n     * \n     * @param body The object defining the properties for the new user\n     */\n    public createUserWithHttpInfo(body?: UserCreateRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UserResponse>> {\n        const path = this.basePath + '/api/v202406/user';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UserResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Create a user group\n     * \n     * @param body Data representing the user group being created\n     */\n    public createUserGroupWithHttpInfo(body?: UserGroupRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UserGroupResponse>> {\n        const path = this.basePath + '/api/v3/userGroup';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UserGroupResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Delete a user group\n     * \n     * @param userGroupId Id of the user group to delete\n     */\n    public deleteUserGroupWithHttpInfo(userGroupId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/userGroup/${userGroupId}'\n                    .replace('${' + 'userGroupId' + '}', String(userGroupId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'userGroupId' is not null or undefined\n        if (userGroupId === null || userGroupId === undefined) {\n            throw new Error('Required parameter userGroupId was null or undefined when calling deleteUserGroup.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n    /**\n     * Edit a system user&#39;s role.\n     * \n     * @param userId \n     * @param body \n     */\n    public editSystemUsersRoleWithHttpInfo(userId: number, body?: UserRoleRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UserResponse>> {\n        const path = this.basePath + '/api/v202206/systemUser/${userId}/role'\n                    .replace('${' + 'userId' + '}', String(userId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'userId' is not null or undefined\n        if (userId === null || userId === undefined) {\n            throw new Error('Required parameter userId was null or undefined when calling editSystemUsersRole.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UserResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edit an existing user. Requires Manage permission for Users &amp; Roles. Please note that password is optional; all other items are required. MaxApprovalAmount may be null; if there is an existing value and null is passed, the existing value will be overwritten.\n     * \n     * @param userId The ID of the user to edit\n     * @param body The object defining the updated properties of the existing user.\n     */\n    public editUserWithHttpInfo(userId: number, body?: UserEditRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UserResponse>> {\n        const path = this.basePath + '/api/v202406/user/${userId}'\n                    .replace('${' + 'userId' + '}', String(userId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'userId' is not null or undefined\n        if (userId === null || userId === undefined) {\n            throw new Error('Required parameter userId was null or undefined when calling editUser.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UserResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edit a user group\n     * \n     * @param userGroupId Id of the user group to edit\n     * @param body Data representing the user group being edited\n     */\n    public editUserGroupWithHttpInfo(userGroupId: number, body?: UserGroupRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UserGroupResponse>> {\n        const path = this.basePath + '/api/v3/userGroup/${userGroupId}'\n                    .replace('${' + 'userGroupId' + '}', String(userGroupId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'userGroupId' is not null or undefined\n        if (userGroupId === null || userGroupId === undefined) {\n            throw new Error('Required parameter userGroupId was null or undefined when calling editUserGroup.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UserGroupResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Update the default notification settings assigned to new users\n     * \n     * @param body Values to update the system notification settings.  If a setting is not passed it&#39;s value is not updated.\n     */\n    public updateNotificationSystemSettingsWithHttpInfo(body?: NotificationSystemSettingsRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<NotificationSettingsResponse>> {\n        const path = this.basePath + '/api/v202108/notification/systemsetting';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<NotificationSettingsResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { NotificationSettingsResponse } from '../model/notificationSettingsResponse';\nimport { UserChild } from '../model/userChild';\nimport { UserResponse } from '../model/userResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsUsersAndUserGroupsViewspanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * The default notification settings assigned to new users\n     * \n     */\n    public getNotificationSystemSettings(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<NotificationSettingsResponse> {\n        return this.getNotificationSystemSettingsWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<NotificationSettingsResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Return a specific user and its properties. Requires View permission for Users &amp; Roles\n     * \n     * @param userId The ID of the user to return\n     */\n    public getUser(userId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UserResponse> {\n        return this.getUserWithHttpInfo(userId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UserResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Gets a list of user group members\n     * \n     * @param userGroupId Id of the user group to get the list of members\n     */\n    public getUserGroupMembers(userGroupId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<UserChild>> {\n        return this.getUserGroupMembersWithHttpInfo(userGroupId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<UserChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * The default notification settings assigned to new users\n     * \n     */\n    public getNotificationSystemSettingsWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<NotificationSettingsResponse>> {\n        const path = this.basePath + '/api/v202108/notification/systemsetting';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<NotificationSettingsResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Return a specific user and its properties. Requires View permission for Users &amp; Roles\n     * \n     * @param userId The ID of the user to return\n     */\n    public getUserWithHttpInfo(userId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UserResponse>> {\n        const path = this.basePath + '/api/v3/user/${userId}'\n                    .replace('${' + 'userId' + '}', String(userId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'userId' is not null or undefined\n        if (userId === null || userId === undefined) {\n            throw new Error('Required parameter userId was null or undefined when calling getUser.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UserResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Gets a list of user group members\n     * \n     * @param userGroupId Id of the user group to get the list of members\n     */\n    public getUserGroupMembersWithHttpInfo(userGroupId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<UserChild>>> {\n        const path = this.basePath + '/api/v3/userGroup/${userGroupId}/member'\n                    .replace('${' + 'userGroupId' + '}', String(userGroupId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'userGroupId' is not null or undefined\n        if (userGroupId === null || userGroupId === undefined) {\n            throw new Error('Required parameter userGroupId was null or undefined when calling getUserGroupMembers.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<UserChild>>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { CommodityDigestActualYearlyResponse } from '../model/commodityDigestActualYearlyResponse';\nimport { RateDigestActualYearlyResponse } from '../model/rateDigestActualYearlyResponse';\nimport { RateResponse } from '../model/rateResponse';\nimport { RateVersionResponse } from '../model/rateVersionResponse';\nimport { TemplateVersion } from '../model/templateVersion';\nimport { UDFFieldChild } from '../model/uDFFieldChild';\nimport { UnitResponse } from '../model/unitResponse';\nimport { VendorContractResponse } from '../model/vendorContractResponse';\nimport { VendorDigestActualYearlyResponse } from '../model/vendorDigestActualYearlyResponse';\nimport { VendorResponse } from '../model/vendorResponse';\nimport { VendorUDFResponse } from '../model/vendorUDFResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsVendorsAndRatesModuleViewspanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Download file for a rate custom field\n     * \n     * @param rateId \n     * @param versionId \n     * @param udfId \n     */\n    public downloadRateCustomFieldFile(rateId: number, versionId: number, udfId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.downloadRateCustomFieldFileWithHttpInfo(rateId, versionId, udfId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Download file for a vendor custom field\n     * \n     * @param vendorId \n     * @param udfId \n     */\n    public downloadVendorCustomFieldFile(vendorId: number, udfId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.downloadVendorCustomFieldFileWithHttpInfo(vendorId, udfId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by commodities for a given number of years- Result includes cost, use, unit cost on an yearly basis.\n     * \n     * @param commodityId The commodity to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     */\n    public getCommodityActualYearly(commodityId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<CommodityDigestActualYearlyResponse> {\n        return this.getCommodityActualYearlyWithHttpInfo(commodityId, numberOfYears, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<CommodityDigestActualYearlyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a rate schedule\n     * \n     * @param rateId Unique ID of the rate schedule\n     */\n    public getRate(rateId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<RateResponse> {\n        return this.getRateWithHttpInfo(rateId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<RateResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by rate for a given number of years- Result includes cost, use, unit cost on an yearly basis.\n     * \n     * @param rateId The rate to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     */\n    public getRateActualYearly(rateId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<RateDigestActualYearlyResponse> {\n        return this.getRateActualYearlyWithHttpInfo(rateId, numberOfYears, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<RateDigestActualYearlyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get the unit used by a rate. The unit is determined by the usage unit on the most recent template assigned to a meter with the given rate.\n     * \n     * @param rateId Unique identifier of the rate schedule for which the unit will be retrieved\n     */\n    public getRateUnit(rateId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<UnitResponse> {\n        return this.getRateUnitWithHttpInfo(rateId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<UnitResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a rate version with its details including dates, unit cost values, and bodylines\n     * \n     * @param rateId ID of the rate schedule to retrieve\n     * @param versionId ID of the rate schedule version to retrieve\n     */\n    public getRateVersion(rateId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<RateVersionResponse> {\n        return this.getRateVersionWithHttpInfo(rateId, versionId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<RateVersionResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a list of all versions for a rate schedule with their details including dates, unit cost values, and bodylines\n     * \n     * @param rateId ID of the rate schedule to retrieve\n     */\n    public getRateVersions(rateId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<RateVersionResponse>> {\n        return this.getRateVersionsWithHttpInfo(rateId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<RateVersionResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Get a list of all rate schedules matching the provided filters\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getRates(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<RateResponse>> {\n        return this.getRatesWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<RateResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves one vendor\n     * \n     * @param vendorId The identifier for the vendor being retrieved\n     */\n    public getVendor(vendorId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<VendorResponse> {\n        return this.getVendorWithHttpInfo(vendorId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<VendorResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by vendor for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes commodity level break up.\n     * \n     * @param vendorId The vendor to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     */\n    public getVendorActualYearly(vendorId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<VendorDigestActualYearlyResponse> {\n        return this.getVendorActualYearlyWithHttpInfo(vendorId, numberOfYears, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<VendorDigestActualYearlyResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all Contracts for a particular vendor.   Contracts are not supported in EnergyCAP Version 7, this API is for reading existing contracts only and may be removed in the future.\n     * \n     * @param vendorId The vendor identifier for which Contracts are being retrieved\n     */\n    public getVendorContracts(vendorId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<VendorContractResponse>> {\n        return this.getVendorContractsWithHttpInfo(vendorId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<VendorContractResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves the most recent template from the specified vendor\n     * \n     * @param vendorId The vendor identifier to search by\n     */\n    public getVendorTemplate(vendorId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<TemplateVersion> {\n        return this.getVendorTemplateWithHttpInfo(vendorId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<TemplateVersion>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all user defined fields / custom fields for a particular vendor\n     * \n     * @param vendorId The vendor identifier for which user defined field / custom field values are being retrieved\n     */\n    public getVendorUdfs(vendorId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<UDFFieldChild>> {\n        return this.getVendorUdfsWithHttpInfo(vendorId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<UDFFieldChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves an array of vendors. The array of vendors can be filtered by a number of criteria. See the filter property for more details\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getVendors(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<VendorResponse>> {\n        return this.getVendorsWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<VendorResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Retrieves all user defined fields / custom fields for all vendors\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getVendorsUdfs(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<VendorUDFResponse>> {\n        return this.getVendorsUdfsWithHttpInfo(filter, pageSize, pageNumber, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<VendorUDFResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Download file for a rate custom field\n     * \n     * @param rateId \n     * @param versionId \n     * @param udfId \n     */\n    public downloadRateCustomFieldFileWithHttpInfo(rateId: number, versionId: number, udfId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202105/rate/${rateId}/version/${versionId}/udf/${udfId}/download'\n                    .replace('${' + 'rateId' + '}', String(rateId))\n                    .replace('${' + 'versionId' + '}', String(versionId))\n                    .replace('${' + 'udfId' + '}', String(udfId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'rateId' is not null or undefined\n        if (rateId === null || rateId === undefined) {\n            throw new Error('Required parameter rateId was null or undefined when calling downloadRateCustomFieldFile.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling downloadRateCustomFieldFile.');\n        }\n        // verify required parameter 'udfId' is not null or undefined\n        if (udfId === null || udfId === undefined) {\n            throw new Error('Required parameter udfId was null or undefined when calling downloadRateCustomFieldFile.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Download file for a vendor custom field\n     * \n     * @param vendorId \n     * @param udfId \n     */\n    public downloadVendorCustomFieldFileWithHttpInfo(vendorId: number, udfId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202105/vendor/${vendorId}/udf/${udfId}/download'\n                    .replace('${' + 'vendorId' + '}', String(vendorId))\n                    .replace('${' + 'udfId' + '}', String(udfId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'vendorId' is not null or undefined\n        if (vendorId === null || vendorId === undefined) {\n            throw new Error('Required parameter vendorId was null or undefined when calling downloadVendorCustomFieldFile.');\n        }\n        // verify required parameter 'udfId' is not null or undefined\n        if (udfId === null || udfId === undefined) {\n            throw new Error('Required parameter udfId was null or undefined when calling downloadVendorCustomFieldFile.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by commodities for a given number of years- Result includes cost, use, unit cost on an yearly basis.\n     * \n     * @param commodityId The commodity to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     */\n    public getCommodityActualYearlyWithHttpInfo(commodityId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<CommodityDigestActualYearlyResponse>> {\n        const path = this.basePath + '/api/v3/commodity/${commodityId}/digest/actual/yearly'\n                    .replace('${' + 'commodityId' + '}', String(commodityId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'commodityId' is not null or undefined\n        if (commodityId === null || commodityId === undefined) {\n            throw new Error('Required parameter commodityId was null or undefined when calling getCommodityActualYearly.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<CommodityDigestActualYearlyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a rate schedule\n     * \n     * @param rateId Unique ID of the rate schedule\n     */\n    public getRateWithHttpInfo(rateId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<RateResponse>> {\n        const path = this.basePath + '/api/v3/rate/${rateId}'\n                    .replace('${' + 'rateId' + '}', String(rateId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'rateId' is not null or undefined\n        if (rateId === null || rateId === undefined) {\n            throw new Error('Required parameter rateId was null or undefined when calling getRate.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<RateResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by rate for a given number of years- Result includes cost, use, unit cost on an yearly basis.\n     * \n     * @param rateId The rate to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     */\n    public getRateActualYearlyWithHttpInfo(rateId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<RateDigestActualYearlyResponse>> {\n        const path = this.basePath + '/api/v3/rate/${rateId}/digest/actual/yearly'\n                    .replace('${' + 'rateId' + '}', String(rateId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'rateId' is not null or undefined\n        if (rateId === null || rateId === undefined) {\n            throw new Error('Required parameter rateId was null or undefined when calling getRateActualYearly.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<RateDigestActualYearlyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get the unit used by a rate. The unit is determined by the usage unit on the most recent template assigned to a meter with the given rate.\n     * \n     * @param rateId Unique identifier of the rate schedule for which the unit will be retrieved\n     */\n    public getRateUnitWithHttpInfo(rateId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<UnitResponse>> {\n        const path = this.basePath + '/api/v3/rate/${rateId}/unit'\n                    .replace('${' + 'rateId' + '}', String(rateId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'rateId' is not null or undefined\n        if (rateId === null || rateId === undefined) {\n            throw new Error('Required parameter rateId was null or undefined when calling getRateUnit.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<UnitResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a rate version with its details including dates, unit cost values, and bodylines\n     * \n     * @param rateId ID of the rate schedule to retrieve\n     * @param versionId ID of the rate schedule version to retrieve\n     */\n    public getRateVersionWithHttpInfo(rateId: number, versionId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<RateVersionResponse>> {\n        const path = this.basePath + '/api/v3/rate/${rateId}/version/${versionId}'\n                    .replace('${' + 'rateId' + '}', String(rateId))\n                    .replace('${' + 'versionId' + '}', String(versionId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'rateId' is not null or undefined\n        if (rateId === null || rateId === undefined) {\n            throw new Error('Required parameter rateId was null or undefined when calling getRateVersion.');\n        }\n        // verify required parameter 'versionId' is not null or undefined\n        if (versionId === null || versionId === undefined) {\n            throw new Error('Required parameter versionId was null or undefined when calling getRateVersion.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<RateVersionResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a list of all versions for a rate schedule with their details including dates, unit cost values, and bodylines\n     * \n     * @param rateId ID of the rate schedule to retrieve\n     */\n    public getRateVersionsWithHttpInfo(rateId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<RateVersionResponse>>> {\n        const path = this.basePath + '/api/v3/rate/${rateId}/version'\n                    .replace('${' + 'rateId' + '}', String(rateId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'rateId' is not null or undefined\n        if (rateId === null || rateId === undefined) {\n            throw new Error('Required parameter rateId was null or undefined when calling getRateVersions.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<RateVersionResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Get a list of all rate schedules matching the provided filters\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getRatesWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<RateResponse>>> {\n        const path = this.basePath + '/api/v3/rate';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<RateResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves one vendor\n     * \n     * @param vendorId The identifier for the vendor being retrieved\n     */\n    public getVendorWithHttpInfo(vendorId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<VendorResponse>> {\n        const path = this.basePath + '/api/v3/vendor/${vendorId}'\n                    .replace('${' + 'vendorId' + '}', String(vendorId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'vendorId' is not null or undefined\n        if (vendorId === null || vendorId === undefined) {\n            throw new Error('Required parameter vendorId was null or undefined when calling getVendor.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<VendorResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves rolled up actual billing data by vendor for a given number of years- Result includes cost, use, unit cost on an yearly basis. It also includes commodity level break up.\n     * \n     * @param vendorId The vendor to retrieve data for\n     * @param numberOfYears Number of years of data to return includes the current year - Defaults to 4\n     */\n    public getVendorActualYearlyWithHttpInfo(vendorId: number, numberOfYears?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<VendorDigestActualYearlyResponse>> {\n        const path = this.basePath + '/api/v3/vendor/${vendorId}/digest/actual/yearly'\n                    .replace('${' + 'vendorId' + '}', String(vendorId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'vendorId' is not null or undefined\n        if (vendorId === null || vendorId === undefined) {\n            throw new Error('Required parameter vendorId was null or undefined when calling getVendorActualYearly.');\n        }\n        if (numberOfYears !== undefined) {\n            queryParameters = queryParameters.set('numberOfYears', <any>numberOfYears);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<VendorDigestActualYearlyResponse>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all Contracts for a particular vendor.   Contracts are not supported in EnergyCAP Version 7, this API is for reading existing contracts only and may be removed in the future.\n     * \n     * @param vendorId The vendor identifier for which Contracts are being retrieved\n     */\n    public getVendorContractsWithHttpInfo(vendorId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<VendorContractResponse>>> {\n        const path = this.basePath + '/api/v3/vendor/${vendorId}/contract'\n                    .replace('${' + 'vendorId' + '}', String(vendorId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'vendorId' is not null or undefined\n        if (vendorId === null || vendorId === undefined) {\n            throw new Error('Required parameter vendorId was null or undefined when calling getVendorContracts.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<VendorContractResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves the most recent template from the specified vendor\n     * \n     * @param vendorId The vendor identifier to search by\n     */\n    public getVendorTemplateWithHttpInfo(vendorId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<TemplateVersion>> {\n        const path = this.basePath + '/api/v202206/vendor/${vendorId}/template'\n                    .replace('${' + 'vendorId' + '}', String(vendorId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'vendorId' is not null or undefined\n        if (vendorId === null || vendorId === undefined) {\n            throw new Error('Required parameter vendorId was null or undefined when calling getVendorTemplate.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<TemplateVersion>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all user defined fields / custom fields for a particular vendor\n     * \n     * @param vendorId The vendor identifier for which user defined field / custom field values are being retrieved\n     */\n    public getVendorUdfsWithHttpInfo(vendorId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<UDFFieldChild>>> {\n        const path = this.basePath + '/api/v3/vendor/${vendorId}/udf'\n                    .replace('${' + 'vendorId' + '}', String(vendorId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'vendorId' is not null or undefined\n        if (vendorId === null || vendorId === undefined) {\n            throw new Error('Required parameter vendorId was null or undefined when calling getVendorUdfs.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<UDFFieldChild>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves an array of vendors. The array of vendors can be filtered by a number of criteria. See the filter property for more details\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getVendorsWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<VendorResponse>>> {\n        const path = this.basePath + '/api/v3/vendor';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<VendorResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n    /**\n     * Retrieves all user defined fields / custom fields for all vendors\n     * \n     * @param filter \n     * @param pageSize The number of elements to return in a page\n     * @param pageNumber The current page number\n     */\n    public getVendorsUdfsWithHttpInfo(filter?: string, pageSize?: number, pageNumber?: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<VendorUDFResponse>>> {\n        const path = this.basePath + '/api/v3/vendor/udf';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        if (filter !== undefined) {\n            queryParameters = queryParameters.set('filter', <any>filter);\n        }\n\n        if (pageSize !== undefined) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        if (pageNumber !== undefined) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<VendorUDFResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { VendorRequest } from '../model/vendorRequest';\nimport { VendorResponse } from '../model/vendorResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsVendorsCreatespanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Creates a vendor\n     * \n     * @param body Data representing the vendor being created\n     */\n    public createVendor(body?: VendorRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<VendorResponse> {\n        return this.createVendorWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<VendorResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Creates a vendor\n     * \n     * @param body Data representing the vendor being created\n     */\n    public createVendorWithHttpInfo(body?: VendorRequest, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<VendorResponse>> {\n        const path = this.basePath + '/api/v3/vendor';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<VendorResponse>(RequestMethod.Post, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsVendorsDeletespanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Deletes a vendor\n     * \n     * @param vendorId The identifier for the vendor being deleted\n     */\n    public deleteVendor(vendorId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.deleteVendorWithHttpInfo(vendorId, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Deletes a vendor\n     * \n     * @param vendorId The identifier for the vendor being deleted\n     */\n    public deleteVendorWithHttpInfo(vendorId: number, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v3/vendor/${vendorId}'\n                    .replace('${' + 'vendorId' + '}', String(vendorId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'vendorId' is not null or undefined\n        if (vendorId === null || vendorId === undefined) {\n            throw new Error('Required parameter vendorId was null or undefined when calling deleteVendor.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Delete, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { TemplateVendorLineRequest } from '../model/templateVendorLineRequest';\nimport { TemplateVersion } from '../model/templateVersion';\nimport { UDFFieldChild } from '../model/uDFFieldChild';\nimport { UDFValue } from '../model/uDFValue';\nimport { VendorEdit } from '../model/vendorEdit';\nimport { VendorResponse } from '../model/vendorResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsVendorsEditspanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Copies any template attached to the provided sourceVendorId to each of the recipientVendorIds specified in the body. If the recipient vendor has a template defined, it will be replaced with the lines on the source vendor&#39;s template. If the recipient vendor does not have a template defined, a new template will be created with the lines on the source vendor&#39;s template.\n     * \n     * @param sourceVendorId Identifier for the \\&quot;Source\\&quot; vendor, which serves as the source for the template to be copied\n     * @param body List of identifiers for the \\&quot;Recipient\\&quot; vendors, who will each receive a copy of the template attached to the Source vendor\n     */\n    public copyVendorTemplate(sourceVendorId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<any> {\n        return this.copyVendorTemplateWithHttpInfo(sourceVendorId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<any>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits a vendor\n     * \n     * @param vendorId The identifier for the vendor being edited\n     * @param body Data representing the vendor being edited\n     */\n    public editVendor(vendorId: number, body?: VendorEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<VendorResponse> {\n        return this.editVendorWithHttpInfo(vendorId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<VendorResponse>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Edits user defined field / custom field values for a particular vendor\n     * \n     * @param vendorId The identifier for the vendor\n     * @param body Data representing the vendor user defined fields / custom fields being edited\n     */\n    public editVendorUDFs(vendorId: number, body?: Array<UDFValue>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<UDFFieldChild>> {\n        return this.editVendorUDFsWithHttpInfo(vendorId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<UDFFieldChild>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n    /**\n     * Updates the template for the specified vendor\n     * \n     * @param vendorId The vendor to apply the template to\n     * @param body Definition of the lines to apply to the template. If vendorLines is empty, any existing template will be deleted\n     */\n    public putVendorTemplate(vendorId: number, body?: Array<TemplateVendorLineRequest>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<TemplateVersion> {\n        return this.putVendorTemplateWithHttpInfo(vendorId, body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<TemplateVersion>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Copies any template attached to the provided sourceVendorId to each of the recipientVendorIds specified in the body. If the recipient vendor has a template defined, it will be replaced with the lines on the source vendor&#39;s template. If the recipient vendor does not have a template defined, a new template will be created with the lines on the source vendor&#39;s template.\n     * \n     * @param sourceVendorId Identifier for the \\&quot;Source\\&quot; vendor, which serves as the source for the template to be copied\n     * @param body List of identifiers for the \\&quot;Recipient\\&quot; vendors, who will each receive a copy of the template attached to the Source vendor\n     */\n    public copyVendorTemplateWithHttpInfo(sourceVendorId: number, body?: Array<number>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<any>> {\n        const path = this.basePath + '/api/v202206/vendor/${sourceVendorId}/template/copy'\n                    .replace('${' + 'sourceVendorId' + '}', String(sourceVendorId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'sourceVendorId' is not null or undefined\n        if (sourceVendorId === null || sourceVendorId === undefined) {\n            throw new Error('Required parameter sourceVendorId was null or undefined when calling copyVendorTemplate.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<any>(RequestMethod.Post, path, requestOptions);\n    }\n\n    /**\n     * Edits a vendor\n     * \n     * @param vendorId The identifier for the vendor being edited\n     * @param body Data representing the vendor being edited\n     */\n    public editVendorWithHttpInfo(vendorId: number, body?: VendorEdit, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<VendorResponse>> {\n        const path = this.basePath + '/api/v202511/vendor/${vendorId}'\n                    .replace('${' + 'vendorId' + '}', String(vendorId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'vendorId' is not null or undefined\n        if (vendorId === null || vendorId === undefined) {\n            throw new Error('Required parameter vendorId was null or undefined when calling editVendor.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<VendorResponse>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Edits user defined field / custom field values for a particular vendor\n     * \n     * @param vendorId The identifier for the vendor\n     * @param body Data representing the vendor user defined fields / custom fields being edited\n     */\n    public editVendorUDFsWithHttpInfo(vendorId: number, body?: Array<UDFValue>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<UDFFieldChild>>> {\n        const path = this.basePath + '/api/v3/vendor/${vendorId}/udf'\n                    .replace('${' + 'vendorId' + '}', String(vendorId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'vendorId' is not null or undefined\n        if (vendorId === null || vendorId === undefined) {\n            throw new Error('Required parameter vendorId was null or undefined when calling editVendorUDFs.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<UDFFieldChild>>(RequestMethod.Put, path, requestOptions);\n    }\n\n    /**\n     * Updates the template for the specified vendor\n     * \n     * @param vendorId The vendor to apply the template to\n     * @param body Definition of the lines to apply to the template. If vendorLines is empty, any existing template will be deleted\n     */\n    public putVendorTemplateWithHttpInfo(vendorId: number, body?: Array<TemplateVendorLineRequest>, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<TemplateVersion>> {\n        const path = this.basePath + '/api/v202206/vendor/${vendorId}/template'\n                    .replace('${' + 'vendorId' + '}', String(vendorId));\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n        // verify required parameter 'vendorId' is not null or undefined\n        if (vendorId === null || vendorId === undefined) {\n            throw new Error('Required parameter vendorId was null or undefined when calling putVendorTemplate.');\n        }\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<TemplateVersion>(RequestMethod.Put, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { WeatherImportResult } from '../model/weatherImportResult';\nimport { WeatherImportSettings } from '../model/weatherImportSettings';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsWeatherSettingsManagespanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Import mean daily temperature readings for weather stations which are connected to EnergyCAP weather services\n     * ### Other Remarks By default, this endpoint may be called without parameters to import weather for all \\&quot;used\\&quot; weather stations (at least one building is assigned to it) beginning from the current date minus 31 days.        By providing a begin date, API users may go further back in history to backfill missing weather data.   If a weather station has no readings at all, then the begin date will be set to 1899-12-31 so we can import history  However the begin date is ascertained, readings will be imported from that date through today&#39;s date, overwriting any existing readings or filling in any missing readings.  The API user may also provide a list of weather station codes. Even if the provided stations are not yet used, weather readings will be imported for them.\n     * @param body \n     */\n    public importWeatherData(body?: WeatherImportSettings, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<WeatherImportResult> {\n        return this.importWeatherDataWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<WeatherImportResult>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Import mean daily temperature readings for weather stations which are connected to EnergyCAP weather services\n     * ### Other Remarks By default, this endpoint may be called without parameters to import weather for all \\&quot;used\\&quot; weather stations (at least one building is assigned to it) beginning from the current date minus 31 days.        By providing a begin date, API users may go further back in history to backfill missing weather data.   If a weather station has no readings at all, then the begin date will be set to 1899-12-31 so we can import history  However the begin date is ascertained, readings will be imported from that date through today&#39;s date, overwriting any existing readings or filling in any missing readings.  The API user may also provide a list of weather station codes. Even if the provided stations are not yet used, weather readings will be imported for them.\n     * @param body \n     */\n    public importWeatherDataWithHttpInfo(body?: WeatherImportSettings, extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<WeatherImportResult>> {\n        const path = this.basePath + '/api/v3/weatherstation/import';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n            'application/json'\n        ];\n        headers = headers.set('Content-Type', consumes[0]);\n\n        let requestOptions = {\n            headers: headers,\n            body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body), // https://github.com/angular/angular/issues/10612\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<WeatherImportResult>(RequestMethod.Post, path, requestOptions);\n    }\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams }               from '@angular/common/http';\nimport { HttpResponse }                                      from '@angular/common/http';\n\nimport { Observable }                                        from 'rxjs';\nimport { map }                                               from 'rxjs/operators';\n\nimport { WeatherStationResponse } from '../model/weatherStationResponse';\n\nimport { BASE_PATH }                                         from '../variables';\nimport { COLLECTION_FORMATS }                                from '../variables';\n\nimport { Configuration }                                     from '../configuration';\n\nconst RequestMethod = {\n    Get: 'get',\n    Post: 'post',\n    Put: 'put',\n    Delete: 'delete',\n    Options: 'options',\n    Head: 'head',\n    Patch: 'patch'\n};\n\n\n@Injectable()\nexport class SpanClasspropertyinfoPermissionPermissionsWeatherSettingsViewspanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders: HttpHeaders = new HttpHeaders();\n    public configuration: Configuration = new Configuration();\n\n    constructor(protected http: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n\t\t\tthis.basePath = basePath || configuration.basePath || this.basePath;\n        }\n    }\n\n    /**\n     * \n     * Extends object by coping non-existing properties.\n     * @param objA object to be extended\n     * @param objB source object\n     */\n    private extendObj<T1,T2>(objA: T1, objB: T2) {\n        for(let key in objB){\n            if(objB.hasOwnProperty(key)){\n                (objA as any)[key] = (objB as any)[key];\n            }\n        }\n        return <T1&T2>objA;\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (let consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Get weather stations. Includes custom-created weather stations\n     * \n     */\n    public getWeatherStations(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<Array<WeatherStationResponse>> {\n        return this.getWeatherStationsWithHttpInfo(extraHttpRequestParams, extraHttpRequestHeaders)\n            .pipe(\n                map((response: HttpResponse<Array<WeatherStationResponse>>) => {\n                    if (response.status === 204) {\n                        return undefined;\n                    } else {\n                        return response.body;\n                    }\n                })\n            )\n    }\n\n\n    /**\n     * Get weather stations. Includes custom-created weather stations\n     * \n     */\n    public getWeatherStationsWithHttpInfo(extraHttpRequestParams?: {search: string | {[param: string]: string | string[] } }, extraHttpRequestHeaders?: {[header: string]: string | string[]}): Observable<HttpResponse<Array<WeatherStationResponse>>> {\n        const path = this.basePath + '/api/v3/weatherstation';\n\n        let queryParameters: HttpParams;\n        \n        if (extraHttpRequestParams) {\n            if (typeof extraHttpRequestParams.search === 'string') { \n                queryParameters = new HttpParams({fromString: extraHttpRequestParams.search});\n            } else {\n                queryParameters = new HttpParams({fromObject: extraHttpRequestParams.search});\n            }\n        } else {\n            queryParameters = new HttpParams();\n        }\n\n        let headers = new HttpHeaders();\n        this.defaultHeaders.keys().forEach(key => {\n            headers = headers.set(key, this.defaultHeaders.getAll(key));\n        });\n\n        if (extraHttpRequestHeaders) {\n            Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {\n                headers = headers.set(key, value);\n            });\n        }\n\n\n        // to determine the Accept header\n        let produces: string[] = [\n            'application/json'\n        ];\n\n        if (this.configuration.apiKeys[\"Authorization\"]) {\n            headers = headers.set('Authorization', this.configuration.apiKeys[\"Authorization\"]);\n        }\n\n        if (this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]) {\n            headers = headers.set('ECI-PUBLIC-DASHBOARD-KEY', this.configuration.apiKeys[\"ECI-PUBLIC-DASHBOARD-KEY\"]);\n        }\n        \n\n        const consumes: string[] = [\n        ];\n\n        let requestOptions = {\n            headers: headers,\n            params: queryParameters,\n            withCredentials:this.configuration.withCredentials,\n            observe: 'response' as 'response'\n        };\n        return this.http.request<Array<WeatherStationResponse>>(RequestMethod.Get, path, requestOptions);\n    }\n\n}\n","export * from './account.service';\nimport { AccountService } from './account.service';\nexport * from './accountDigest.service';\nimport { AccountDigestService } from './accountDigest.service';\nexport * from './accountMeter.service';\nimport { AccountMeterService } from './accountMeter.service';\nexport * from './accrual.service';\nimport { AccrualService } from './accrual.service';\nexport * from './activity.service';\nimport { ActivityService } from './activity.service';\nexport * from './admin.service';\nimport { AdminService } from './admin.service';\nexport * from './api.service';\nimport { ApiService } from './api.service';\nexport * from './apiKey.service';\nimport { ApiKeyService } from './apiKey.service';\nexport * from './audit.service';\nimport { AuditService } from './audit.service';\nexport * from './authentication.service';\nimport { AuthenticationService } from './authentication.service';\nexport * from './batch.service';\nimport { BatchService } from './batch.service';\nexport * from './bill.service';\nimport { BillService } from './bill.service';\nexport * from './billAccountChargeSplit.service';\nimport { BillAccountChargeSplitService } from './billAccountChargeSplit.service';\nexport * from './billSplit.service';\nimport { BillSplitService } from './billSplit.service';\nexport * from './billView.service';\nimport { BillViewService } from './billView.service';\nexport * from './budget.service';\nimport { BudgetService } from './budget.service';\nexport * from './calculatedBill.service';\nimport { CalculatedBillService } from './calculatedBill.service';\nexport * from './channel.service';\nimport { ChannelService } from './channel.service';\nexport * from './chargebackEngine.service';\nimport { ChargebackEngineService } from './chargebackEngine.service';\nexport * from './chargebackTask.service';\nimport { ChargebackTaskService } from './chargebackTask.service';\nexport * from './chargebackWorkflow.service';\nimport { ChargebackWorkflowService } from './chargebackWorkflow.service';\nexport * from './collection.service';\nimport { CollectionService } from './collection.service';\nexport * from './commodity.service';\nimport { CommodityService } from './commodity.service';\nexport * from './commodityCategory.service';\nimport { CommodityCategoryService } from './commodityCategory.service';\nexport * from './commodityDigest.service';\nimport { CommodityDigestService } from './commodityDigest.service';\nexport * from './costCategory.service';\nimport { CostCategoryService } from './costCategory.service';\nexport * from './costCenter.service';\nimport { CostCenterService } from './costCenter.service';\nexport * from './costCenterDigest.service';\nimport { CostCenterDigestService } from './costCenterDigest.service';\nexport * from './country.service';\nimport { CountryService } from './country.service';\nexport * from './customer.service';\nimport { CustomerService } from './customer.service';\nexport * from './dashboard.service';\nimport { DashboardService } from './dashboard.service';\nexport * from './dataPoint.service';\nimport { DataPointService } from './dataPoint.service';\nexport * from './emissionRecord.service';\nimport { EmissionRecordService } from './emissionRecord.service';\nexport * from './emissionSource.service';\nimport { EmissionSourceService } from './emissionSource.service';\nexport * from './energyManager.service';\nimport { EnergyManagerService } from './energyManager.service';\nexport * from './energyProject.service';\nimport { EnergyProjectService } from './energyProject.service';\nexport * from './energyStar.service';\nimport { EnergyStarService } from './energyStar.service';\nexport * from './environment.service';\nimport { EnvironmentService } from './environment.service';\nexport * from './esaChannel.service';\nimport { EsaChannelService } from './esaChannel.service';\nexport * from './esaPlace.service';\nimport { EsaPlaceService } from './esaPlace.service';\nexport * from './esaReading.service';\nimport { EsaReadingService } from './esaReading.service';\nexport * from './export.service';\nimport { ExportService } from './export.service';\nexport * from './fileStore.service';\nimport { FileStoreService } from './fileStore.service';\nexport * from './filter.service';\nimport { FilterService } from './filter.service';\nexport * from './flag.service';\nimport { FlagService } from './flag.service';\nexport * from './formula.service';\nimport { FormulaService } from './formula.service';\nexport * from './gHG.service';\nimport { GHGService } from './gHG.service';\nexport * from './generalLedger.service';\nimport { GeneralLedgerService } from './generalLedger.service';\nexport * from './hierarchy.service';\nimport { HierarchyService } from './hierarchy.service';\nexport * from './import.service';\nimport { ImportService } from './import.service';\nexport * from './list.service';\nimport { ListService } from './list.service';\nexport * from './me.service';\nimport { MeService } from './me.service';\nexport * from './meter.service';\nimport { MeterService } from './meter.service';\nexport * from './meterDigest.service';\nimport { MeterDigestService } from './meterDigest.service';\nexport * from './meterGroup.service';\nimport { MeterGroupService } from './meterGroup.service';\nexport * from './meterGroupDigest.service';\nimport { MeterGroupDigestService } from './meterGroupDigest.service';\nexport * from './notification.service';\nimport { NotificationService } from './notification.service';\nexport * from './observation.service';\nimport { ObservationService } from './observation.service';\nexport * from './observationType.service';\nimport { ObservationTypeService } from './observationType.service';\nexport * from './place.service';\nimport { PlaceService } from './place.service';\nexport * from './placeBenchmark.service';\nimport { PlaceBenchmarkService } from './placeBenchmark.service';\nexport * from './placeDigest.service';\nimport { PlaceDigestService } from './placeDigest.service';\nexport * from './placeGroup.service';\nimport { PlaceGroupService } from './placeGroup.service';\nexport * from './placeGroupDigest.service';\nimport { PlaceGroupDigestService } from './placeGroupDigest.service';\nexport * from './postalCode.service';\nimport { PostalCodeService } from './postalCode.service';\nexport * from './primaryUse.service';\nimport { PrimaryUseService } from './primaryUse.service';\nexport * from './rate.service';\nimport { RateService } from './rate.service';\nexport * from './rateDigest.service';\nimport { RateDigestService } from './rateDigest.service';\nexport * from './report.service';\nimport { ReportService } from './report.service';\nexport * from './reportBuilder.service';\nimport { ReportBuilderService } from './reportBuilder.service';\nexport * from './reportDistribution.service';\nimport { ReportDistributionService } from './reportDistribution.service';\nexport * from './route.service';\nimport { RouteService } from './route.service';\nexport * from './savings.service';\nimport { SavingsService } from './savings.service';\nexport * from './schedule.service';\nimport { ScheduleService } from './schedule.service';\nexport * from './search.service';\nimport { SearchService } from './search.service';\nexport * from './sentinel.service';\nimport { SentinelService } from './sentinel.service';\nexport * from './setup.service';\nimport { SetupService } from './setup.service';\nexport * from './summaryAccount.service';\nimport { SummaryAccountService } from './summaryAccount.service';\nexport * from './systemUser.service';\nimport { SystemUserService } from './systemUser.service';\nexport * from './tag.service';\nimport { TagService } from './tag.service';\nexport * from './task.service';\nimport { TaskService } from './task.service';\nexport * from './template.service';\nimport { TemplateService } from './template.service';\nexport * from './timeZone.service';\nimport { TimeZoneService } from './timeZone.service';\nexport * from './uDF.service';\nimport { UDFService } from './uDF.service';\nexport * from './unit.service';\nimport { UnitService } from './unit.service';\nexport * from './userGroup.service';\nimport { UserGroupService } from './userGroup.service';\nexport * from './userRole.service';\nimport { UserRoleService } from './userRole.service';\nexport * from './utilityPlatform.service';\nimport { UtilityPlatformService } from './utilityPlatform.service';\nexport * from './vendor.service';\nimport { VendorService } from './vendor.service';\nexport * from './vendorDigest.service';\nimport { VendorDigestService } from './vendorDigest.service';\nexport * from './weatherStation.service';\nimport { WeatherStationService } from './weatherStation.service';\nexport * from './webCaptureCredential.service';\nimport { WebCaptureCredentialService } from './webCaptureCredential.service';\nexport * from './webhook.service';\nimport { WebhookService } from './webhook.service';\nexport * from './widget.service';\nimport { WidgetService } from './widget.service';\nexport * from './workflow.service';\nimport { WorkflowService } from './workflow.service';\nexport * from './spanClasspropertyinfoPaginatedPaginatedspan.service';\nimport { SpanClasspropertyinfoPaginatedPaginatedspanService } from './spanClasspropertyinfoPaginatedPaginatedspan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsAccountingSettingsManagespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsAccountingSettingsManagespanService } from './spanClasspropertyinfoPermissionPermissionsAccountingSettingsManagespan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsAccountsCreatespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsAccountsCreatespanService } from './spanClasspropertyinfoPermissionPermissionsAccountsCreatespan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsAccountsDeletespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsAccountsDeletespanService } from './spanClasspropertyinfoPermissionPermissionsAccountsDeletespan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsAccountsEditspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsAccountsEditspanService } from './spanClasspropertyinfoPermissionPermissionsAccountsEditspan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsAccountsViewspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsAccountsViewspanService } from './spanClasspropertyinfoPermissionPermissionsAccountsViewspan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsAccrualSettingsManagespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsAccrualSettingsManagespanService } from './spanClasspropertyinfoPermissionPermissionsAccrualSettingsManagespan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsAccrualSettingsRunspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsAccrualSettingsRunspanService } from './spanClasspropertyinfoPermissionPermissionsAccrualSettingsRunspan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsAccrualSettingsViewspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsAccrualSettingsViewspanService } from './spanClasspropertyinfoPermissionPermissionsAccrualSettingsViewspan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsApplicationSettingsManagespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsApplicationSettingsManagespanService } from './spanClasspropertyinfoPermissionPermissionsApplicationSettingsManagespan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsApplicationSettingsViewspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsApplicationSettingsViewspanService } from './spanClasspropertyinfoPermissionPermissionsApplicationSettingsViewspan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsApproveBillsManagespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsApproveBillsManagespanService } from './spanClasspropertyinfoPermissionPermissionsApproveBillsManagespan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsBaselineEngineRunspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsBaselineEngineRunspanService } from './spanClasspropertyinfoPermissionPermissionsBaselineEngineRunspan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsBillCAPtureViewspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsBillCAPtureViewspanService } from './spanClasspropertyinfoPermissionPermissionsBillCAPtureViewspan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsBillWorkflowSettingsManagespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsBillWorkflowSettingsManagespanService } from './spanClasspropertyinfoPermissionPermissionsBillWorkflowSettingsManagespan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsBillWorkflowSettingsViewspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsBillWorkflowSettingsViewspanService } from './spanClasspropertyinfoPermissionPermissionsBillWorkflowSettingsViewspan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsBillsAndBatchesCreatespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsBillsAndBatchesCreatespanService } from './spanClasspropertyinfoPermissionPermissionsBillsAndBatchesCreatespan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsBillsAndBatchesDeletespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsBillsAndBatchesDeletespanService } from './spanClasspropertyinfoPermissionPermissionsBillsAndBatchesDeletespan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsBillsAndBatchesEditspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsBillsAndBatchesEditspanService } from './spanClasspropertyinfoPermissionPermissionsBillsAndBatchesEditspan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsBillsAndBatchesManagespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsBillsAndBatchesManagespanService } from './spanClasspropertyinfoPermissionPermissionsBillsAndBatchesManagespan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsBillsAndBatchesViewspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsBillsAndBatchesViewspanService } from './spanClasspropertyinfoPermissionPermissionsBillsAndBatchesViewspan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsBudgetsAndBudgetVersionsCreatespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsBudgetsAndBudgetVersionsCreatespanService } from './spanClasspropertyinfoPermissionPermissionsBudgetsAndBudgetVersionsCreatespan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsBudgetsAndBudgetVersionsDeletespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsBudgetsAndBudgetVersionsDeletespanService } from './spanClasspropertyinfoPermissionPermissionsBudgetsAndBudgetVersionsDeletespan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsBudgetsAndBudgetVersionsEditspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsBudgetsAndBudgetVersionsEditspanService } from './spanClasspropertyinfoPermissionPermissionsBudgetsAndBudgetVersionsEditspan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsBudgetsAndBudgetVersionsViewspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsBudgetsAndBudgetVersionsViewspanService } from './spanClasspropertyinfoPermissionPermissionsBudgetsAndBudgetVersionsViewspan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsBuildingAndMeterGroupsCreatespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsBuildingAndMeterGroupsCreatespanService } from './spanClasspropertyinfoPermissionPermissionsBuildingAndMeterGroupsCreatespan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsBuildingAndMeterGroupsDeletespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsBuildingAndMeterGroupsDeletespanService } from './spanClasspropertyinfoPermissionPermissionsBuildingAndMeterGroupsDeletespan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsBuildingAndMeterGroupsEditspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsBuildingAndMeterGroupsEditspanService } from './spanClasspropertyinfoPermissionPermissionsBuildingAndMeterGroupsEditspan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsBuildingsAndOrganizationsCreatespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsBuildingsAndOrganizationsCreatespanService } from './spanClasspropertyinfoPermissionPermissionsBuildingsAndOrganizationsCreatespan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsBuildingsAndOrganizationsDeletespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsBuildingsAndOrganizationsDeletespanService } from './spanClasspropertyinfoPermissionPermissionsBuildingsAndOrganizationsDeletespan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsBuildingsAndOrganizationsEditspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsBuildingsAndOrganizationsEditspanService } from './spanClasspropertyinfoPermissionPermissionsBuildingsAndOrganizationsEditspan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsBuildingsAndOrganizationsViewspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsBuildingsAndOrganizationsViewspanService } from './spanClasspropertyinfoPermissionPermissionsBuildingsAndOrganizationsViewspan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsChargebackReversalsManagespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsChargebackReversalsManagespanService } from './spanClasspropertyinfoPermissionPermissionsChargebackReversalsManagespan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsChargebacksManagespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsChargebacksManagespanService } from './spanClasspropertyinfoPermissionPermissionsChargebacksManagespan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsChargebacksModuleViewspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsChargebacksModuleViewspanService } from './spanClasspropertyinfoPermissionPermissionsChargebacksModuleViewspan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsChargebacksRunspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsChargebacksRunspanService } from './spanClasspropertyinfoPermissionPermissionsChargebacksRunspan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsCollectionsCreatespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsCollectionsCreatespanService } from './spanClasspropertyinfoPermissionPermissionsCollectionsCreatespan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsCollectionsDeletespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsCollectionsDeletespanService } from './spanClasspropertyinfoPermissionPermissionsCollectionsDeletespan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsCollectionsEditspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsCollectionsEditspanService } from './spanClasspropertyinfoPermissionPermissionsCollectionsEditspan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsCollectionsViewspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsCollectionsViewspanService } from './spanClasspropertyinfoPermissionPermissionsCollectionsViewspan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsCostCentersCreatespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsCostCentersCreatespanService } from './spanClasspropertyinfoPermissionPermissionsCostCentersCreatespan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsCostCentersDeletespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsCostCentersDeletespanService } from './spanClasspropertyinfoPermissionPermissionsCostCentersDeletespan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsCostCentersEditspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsCostCentersEditspanService } from './spanClasspropertyinfoPermissionPermissionsCostCentersEditspan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsCostCentersViewspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsCostCentersViewspanService } from './spanClasspropertyinfoPermissionPermissionsCostCentersViewspan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsDashboardAndMapsModuleViewspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsDashboardAndMapsModuleViewspanService } from './spanClasspropertyinfoPermissionPermissionsDashboardAndMapsModuleViewspan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsDistributedReportsSettingsManagespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsDistributedReportsSettingsManagespanService } from './spanClasspropertyinfoPermissionPermissionsDistributedReportsSettingsManagespan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsENERGYSTARSubmissionsManagespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsENERGYSTARSubmissionsManagespanService } from './spanClasspropertyinfoPermissionPermissionsENERGYSTARSubmissionsManagespan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsENERGYSTARSubmissionsRunspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsENERGYSTARSubmissionsRunspanService } from './spanClasspropertyinfoPermissionPermissionsENERGYSTARSubmissionsRunspan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsEmissionsSourcesCreatespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsEmissionsSourcesCreatespanService } from './spanClasspropertyinfoPermissionPermissionsEmissionsSourcesCreatespan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsEmissionsSourcesDeletespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsEmissionsSourcesDeletespanService } from './spanClasspropertyinfoPermissionPermissionsEmissionsSourcesDeletespan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsEmissionsSourcesEditspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsEmissionsSourcesEditspanService } from './spanClasspropertyinfoPermissionPermissionsEmissionsSourcesEditspan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsEmissionsSourcesViewspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsEmissionsSourcesViewspanService } from './spanClasspropertyinfoPermissionPermissionsEmissionsSourcesViewspan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsEnergyManagerModuleViewspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsEnergyManagerModuleViewspanService } from './spanClasspropertyinfoPermissionPermissionsEnergyManagerModuleViewspan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsExportBillsRunspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsExportBillsRunspanService } from './spanClasspropertyinfoPermissionPermissionsExportBillsRunspan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsExportHoldManagespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsExportHoldManagespanService } from './spanClasspropertyinfoPermissionPermissionsExportHoldManagespan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsFacilityProjectsCreatespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsFacilityProjectsCreatespanService } from './spanClasspropertyinfoPermissionPermissionsFacilityProjectsCreatespan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsFacilityProjectsDeletespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsFacilityProjectsDeletespanService } from './spanClasspropertyinfoPermissionPermissionsFacilityProjectsDeletespan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsFacilityProjectsEditspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsFacilityProjectsEditspanService } from './spanClasspropertyinfoPermissionPermissionsFacilityProjectsEditspan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsFlaggedItemsManagespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsFlaggedItemsManagespanService } from './spanClasspropertyinfoPermissionPermissionsFlaggedItemsManagespan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsFlaggedItemsViewspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsFlaggedItemsViewspanService } from './spanClasspropertyinfoPermissionPermissionsFlaggedItemsViewspan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsGlobalCostAvoidanceSettingsManagespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsGlobalCostAvoidanceSettingsManagespanService } from './spanClasspropertyinfoPermissionPermissionsGlobalCostAvoidanceSettingsManagespan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsGlobalCostAvoidanceSettingsViewspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsGlobalCostAvoidanceSettingsViewspanService } from './spanClasspropertyinfoPermissionPermissionsGlobalCostAvoidanceSettingsViewspan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsGroupsAndBenchmarksModuleViewspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsGroupsAndBenchmarksModuleViewspanService } from './spanClasspropertyinfoPermissionPermissionsGroupsAndBenchmarksModuleViewspan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsIntervalDataManagespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsIntervalDataManagespanService } from './spanClasspropertyinfoPermissionPermissionsIntervalDataManagespan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsLicenseFeatureIntervalDataAnalysisViewspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsLicenseFeatureIntervalDataAnalysisViewspanService } from './spanClasspropertyinfoPermissionPermissionsLicenseFeatureIntervalDataAnalysisViewspan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsManuallyAdjustSavingsManagespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsManuallyAdjustSavingsManagespanService } from './spanClasspropertyinfoPermissionPermissionsManuallyAdjustSavingsManagespan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsMeterSavingsSettingsManagespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsMeterSavingsSettingsManagespanService } from './spanClasspropertyinfoPermissionPermissionsMeterSavingsSettingsManagespan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsMeterSavingsSettingsViewspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsMeterSavingsSettingsViewspanService } from './spanClasspropertyinfoPermissionPermissionsMeterSavingsSettingsViewspan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsMetersCreatespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsMetersCreatespanService } from './spanClasspropertyinfoPermissionPermissionsMetersCreatespan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsMetersDeletespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsMetersDeletespanService } from './spanClasspropertyinfoPermissionPermissionsMetersDeletespan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsMetersEditspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsMetersEditspanService } from './spanClasspropertyinfoPermissionPermissionsMetersEditspan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsMetersViewspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsMetersViewspanService } from './spanClasspropertyinfoPermissionPermissionsMetersViewspan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsMoveAccountsBetweenVendorsManagespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsMoveAccountsBetweenVendorsManagespanService } from './spanClasspropertyinfoPermissionPermissionsMoveAccountsBetweenVendorsManagespan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsMoveExistingBillsManagespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsMoveExistingBillsManagespanService } from './spanClasspropertyinfoPermissionPermissionsMoveExistingBillsManagespan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsPublicDashboardsOrMapsManagespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsPublicDashboardsOrMapsManagespanService } from './spanClasspropertyinfoPermissionPermissionsPublicDashboardsOrMapsManagespan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsRateSchedulesCreatespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsRateSchedulesCreatespanService } from './spanClasspropertyinfoPermissionPermissionsRateSchedulesCreatespan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsRateSchedulesDeletespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsRateSchedulesDeletespanService } from './spanClasspropertyinfoPermissionPermissionsRateSchedulesDeletespan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsRateSchedulesEditspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsRateSchedulesEditspanService } from './spanClasspropertyinfoPermissionPermissionsRateSchedulesEditspan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsRecordsCreatespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsRecordsCreatespanService } from './spanClasspropertyinfoPermissionPermissionsRecordsCreatespan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsRecordsDeletespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsRecordsDeletespanService } from './spanClasspropertyinfoPermissionPermissionsRecordsDeletespan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsRecordsEditspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsRecordsEditspanService } from './spanClasspropertyinfoPermissionPermissionsRecordsEditspan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsRecordsViewspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsRecordsViewspanService } from './spanClasspropertyinfoPermissionPermissionsRecordsViewspan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsReportAdministratorManagespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsReportAdministratorManagespanService } from './spanClasspropertyinfoPermissionPermissionsReportAdministratorManagespan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsReportGroupsManagespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsReportGroupsManagespanService } from './spanClasspropertyinfoPermissionPermissionsReportGroupsManagespan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsReportsRunspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsReportsRunspanService } from './spanClasspropertyinfoPermissionPermissionsReportsRunspan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsRolesManagespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsRolesManagespanService } from './spanClasspropertyinfoPermissionPermissionsRolesManagespan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsSavingsAdjustmentsManagespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsSavingsAdjustmentsManagespanService } from './spanClasspropertyinfoPermissionPermissionsSavingsAdjustmentsManagespan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsSavingsAdjustmentsViewspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsSavingsAdjustmentsViewspanService } from './spanClasspropertyinfoPermissionPermissionsSavingsAdjustmentsViewspan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsSavingsEngineRunspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsSavingsEngineRunspanService } from './spanClasspropertyinfoPermissionPermissionsSavingsEngineRunspan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsUnitSystemSettingsManagespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsUnitSystemSettingsManagespanService } from './spanClasspropertyinfoPermissionPermissionsUnitSystemSettingsManagespan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsUsersAndUserGroupsManagespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsUsersAndUserGroupsManagespanService } from './spanClasspropertyinfoPermissionPermissionsUsersAndUserGroupsManagespan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsUsersAndUserGroupsViewspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsUsersAndUserGroupsViewspanService } from './spanClasspropertyinfoPermissionPermissionsUsersAndUserGroupsViewspan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsVendorsAndRatesModuleViewspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsVendorsAndRatesModuleViewspanService } from './spanClasspropertyinfoPermissionPermissionsVendorsAndRatesModuleViewspan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsVendorsCreatespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsVendorsCreatespanService } from './spanClasspropertyinfoPermissionPermissionsVendorsCreatespan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsVendorsDeletespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsVendorsDeletespanService } from './spanClasspropertyinfoPermissionPermissionsVendorsDeletespan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsVendorsEditspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsVendorsEditspanService } from './spanClasspropertyinfoPermissionPermissionsVendorsEditspan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsWeatherSettingsManagespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsWeatherSettingsManagespanService } from './spanClasspropertyinfoPermissionPermissionsWeatherSettingsManagespan.service';\nexport * from './spanClasspropertyinfoPermissionPermissionsWeatherSettingsViewspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsWeatherSettingsViewspanService } from './spanClasspropertyinfoPermissionPermissionsWeatherSettingsViewspan.service';\nexport const APIS = [AccountService, AccountDigestService, AccountMeterService, AccrualService, ActivityService, AdminService, ApiService, ApiKeyService, AuditService, AuthenticationService, BatchService, BillService, BillAccountChargeSplitService, BillSplitService, BillViewService, BudgetService, CalculatedBillService, ChannelService, ChargebackEngineService, ChargebackTaskService, ChargebackWorkflowService, CollectionService, CommodityService, CommodityCategoryService, CommodityDigestService, CostCategoryService, CostCenterService, CostCenterDigestService, CountryService, CustomerService, DashboardService, DataPointService, EmissionRecordService, EmissionSourceService, EnergyManagerService, EnergyProjectService, EnergyStarService, EnvironmentService, EsaChannelService, EsaPlaceService, EsaReadingService, ExportService, FileStoreService, FilterService, FlagService, FormulaService, GHGService, GeneralLedgerService, HierarchyService, ImportService, ListService, MeService, MeterService, MeterDigestService, MeterGroupService, MeterGroupDigestService, NotificationService, ObservationService, ObservationTypeService, PlaceService, PlaceBenchmarkService, PlaceDigestService, PlaceGroupService, PlaceGroupDigestService, PostalCodeService, PrimaryUseService, RateService, RateDigestService, ReportService, ReportBuilderService, ReportDistributionService, RouteService, SavingsService, ScheduleService, SearchService, SentinelService, SetupService, SummaryAccountService, SystemUserService, TagService, TaskService, TemplateService, TimeZoneService, UDFService, UnitService, UserGroupService, UserRoleService, UtilityPlatformService, VendorService, VendorDigestService, WeatherStationService, WebCaptureCredentialService, WebhookService, WidgetService, WorkflowService, SpanClasspropertyinfoPaginatedPaginatedspanService, SpanClasspropertyinfoPermissionPermissionsAccountingSettingsManagespanService, SpanClasspropertyinfoPermissionPermissionsAccountsCreatespanService, SpanClasspropertyinfoPermissionPermissionsAccountsDeletespanService, SpanClasspropertyinfoPermissionPermissionsAccountsEditspanService, SpanClasspropertyinfoPermissionPermissionsAccountsViewspanService, SpanClasspropertyinfoPermissionPermissionsAccrualSettingsManagespanService, SpanClasspropertyinfoPermissionPermissionsAccrualSettingsRunspanService, SpanClasspropertyinfoPermissionPermissionsAccrualSettingsViewspanService, SpanClasspropertyinfoPermissionPermissionsApplicationSettingsManagespanService, SpanClasspropertyinfoPermissionPermissionsApplicationSettingsViewspanService, SpanClasspropertyinfoPermissionPermissionsApproveBillsManagespanService, SpanClasspropertyinfoPermissionPermissionsBaselineEngineRunspanService, SpanClasspropertyinfoPermissionPermissionsBillCAPtureViewspanService, SpanClasspropertyinfoPermissionPermissionsBillWorkflowSettingsManagespanService, SpanClasspropertyinfoPermissionPermissionsBillWorkflowSettingsViewspanService, SpanClasspropertyinfoPermissionPermissionsBillsAndBatchesCreatespanService, SpanClasspropertyinfoPermissionPermissionsBillsAndBatchesDeletespanService, SpanClasspropertyinfoPermissionPermissionsBillsAndBatchesEditspanService, SpanClasspropertyinfoPermissionPermissionsBillsAndBatchesManagespanService, SpanClasspropertyinfoPermissionPermissionsBillsAndBatchesViewspanService, SpanClasspropertyinfoPermissionPermissionsBudgetsAndBudgetVersionsCreatespanService, SpanClasspropertyinfoPermissionPermissionsBudgetsAndBudgetVersionsDeletespanService, SpanClasspropertyinfoPermissionPermissionsBudgetsAndBudgetVersionsEditspanService, SpanClasspropertyinfoPermissionPermissionsBudgetsAndBudgetVersionsViewspanService, SpanClasspropertyinfoPermissionPermissionsBuildingAndMeterGroupsCreatespanService, SpanClasspropertyinfoPermissionPermissionsBuildingAndMeterGroupsDeletespanService, SpanClasspropertyinfoPermissionPermissionsBuildingAndMeterGroupsEditspanService, SpanClasspropertyinfoPermissionPermissionsBuildingsAndOrganizationsCreatespanService, SpanClasspropertyinfoPermissionPermissionsBuildingsAndOrganizationsDeletespanService, SpanClasspropertyinfoPermissionPermissionsBuildingsAndOrganizationsEditspanService, SpanClasspropertyinfoPermissionPermissionsBuildingsAndOrganizationsViewspanService, SpanClasspropertyinfoPermissionPermissionsChargebackReversalsManagespanService, SpanClasspropertyinfoPermissionPermissionsChargebacksManagespanService, SpanClasspropertyinfoPermissionPermissionsChargebacksModuleViewspanService, SpanClasspropertyinfoPermissionPermissionsChargebacksRunspanService, SpanClasspropertyinfoPermissionPermissionsCollectionsCreatespanService, SpanClasspropertyinfoPermissionPermissionsCollectionsDeletespanService, SpanClasspropertyinfoPermissionPermissionsCollectionsEditspanService, SpanClasspropertyinfoPermissionPermissionsCollectionsViewspanService, SpanClasspropertyinfoPermissionPermissionsCostCentersCreatespanService, SpanClasspropertyinfoPermissionPermissionsCostCentersDeletespanService, SpanClasspropertyinfoPermissionPermissionsCostCentersEditspanService, SpanClasspropertyinfoPermissionPermissionsCostCentersViewspanService, SpanClasspropertyinfoPermissionPermissionsDashboardAndMapsModuleViewspanService, SpanClasspropertyinfoPermissionPermissionsDistributedReportsSettingsManagespanService, SpanClasspropertyinfoPermissionPermissionsENERGYSTARSubmissionsManagespanService, SpanClasspropertyinfoPermissionPermissionsENERGYSTARSubmissionsRunspanService, SpanClasspropertyinfoPermissionPermissionsEmissionsSourcesCreatespanService, SpanClasspropertyinfoPermissionPermissionsEmissionsSourcesDeletespanService, SpanClasspropertyinfoPermissionPermissionsEmissionsSourcesEditspanService, SpanClasspropertyinfoPermissionPermissionsEmissionsSourcesViewspanService, SpanClasspropertyinfoPermissionPermissionsEnergyManagerModuleViewspanService, SpanClasspropertyinfoPermissionPermissionsExportBillsRunspanService, SpanClasspropertyinfoPermissionPermissionsExportHoldManagespanService, SpanClasspropertyinfoPermissionPermissionsFacilityProjectsCreatespanService, SpanClasspropertyinfoPermissionPermissionsFacilityProjectsDeletespanService, SpanClasspropertyinfoPermissionPermissionsFacilityProjectsEditspanService, SpanClasspropertyinfoPermissionPermissionsFlaggedItemsManagespanService, SpanClasspropertyinfoPermissionPermissionsFlaggedItemsViewspanService, SpanClasspropertyinfoPermissionPermissionsGlobalCostAvoidanceSettingsManagespanService, SpanClasspropertyinfoPermissionPermissionsGlobalCostAvoidanceSettingsViewspanService, SpanClasspropertyinfoPermissionPermissionsGroupsAndBenchmarksModuleViewspanService, SpanClasspropertyinfoPermissionPermissionsIntervalDataManagespanService, SpanClasspropertyinfoPermissionPermissionsLicenseFeatureIntervalDataAnalysisViewspanService, SpanClasspropertyinfoPermissionPermissionsManuallyAdjustSavingsManagespanService, SpanClasspropertyinfoPermissionPermissionsMeterSavingsSettingsManagespanService, SpanClasspropertyinfoPermissionPermissionsMeterSavingsSettingsViewspanService, SpanClasspropertyinfoPermissionPermissionsMetersCreatespanService, SpanClasspropertyinfoPermissionPermissionsMetersDeletespanService, SpanClasspropertyinfoPermissionPermissionsMetersEditspanService, SpanClasspropertyinfoPermissionPermissionsMetersViewspanService, SpanClasspropertyinfoPermissionPermissionsMoveAccountsBetweenVendorsManagespanService, SpanClasspropertyinfoPermissionPermissionsMoveExistingBillsManagespanService, SpanClasspropertyinfoPermissionPermissionsPublicDashboardsOrMapsManagespanService, SpanClasspropertyinfoPermissionPermissionsRateSchedulesCreatespanService, SpanClasspropertyinfoPermissionPermissionsRateSchedulesDeletespanService, SpanClasspropertyinfoPermissionPermissionsRateSchedulesEditspanService, SpanClasspropertyinfoPermissionPermissionsRecordsCreatespanService, SpanClasspropertyinfoPermissionPermissionsRecordsDeletespanService, SpanClasspropertyinfoPermissionPermissionsRecordsEditspanService, SpanClasspropertyinfoPermissionPermissionsRecordsViewspanService, SpanClasspropertyinfoPermissionPermissionsReportAdministratorManagespanService, SpanClasspropertyinfoPermissionPermissionsReportGroupsManagespanService, SpanClasspropertyinfoPermissionPermissionsReportsRunspanService, SpanClasspropertyinfoPermissionPermissionsRolesManagespanService, SpanClasspropertyinfoPermissionPermissionsSavingsAdjustmentsManagespanService, SpanClasspropertyinfoPermissionPermissionsSavingsAdjustmentsViewspanService, SpanClasspropertyinfoPermissionPermissionsSavingsEngineRunspanService, SpanClasspropertyinfoPermissionPermissionsUnitSystemSettingsManagespanService, SpanClasspropertyinfoPermissionPermissionsUsersAndUserGroupsManagespanService, SpanClasspropertyinfoPermissionPermissionsUsersAndUserGroupsViewspanService, SpanClasspropertyinfoPermissionPermissionsVendorsAndRatesModuleViewspanService, SpanClasspropertyinfoPermissionPermissionsVendorsCreatespanService, SpanClasspropertyinfoPermissionPermissionsVendorsDeletespanService, SpanClasspropertyinfoPermissionPermissionsVendorsEditspanService, SpanClasspropertyinfoPermissionPermissionsWeatherSettingsManagespanService, SpanClasspropertyinfoPermissionPermissionsWeatherSettingsViewspanService];\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class AbnormalBillCostWithOutlierAnalysisSettingRequest {\n    /**\n     * Minimum outlier sensitivity for abnormal cost analysis If SettingStatus is set to Skip and no value is provided, EnergyCAP default will be set <span class='property-internal'>Required when SettingStatus is set to Check, or Hold</span> <span class='property-internal'>One of 'Severe', 'High', 'Moderate'</span>\n     */\n    sensitivity: string | null | undefined;\n\n    /**\n     * The status of the audit setting <span class='property-internal'>One of 'Check', 'Hold', 'Skip'</span> <span class='property-internal'>Required (defined)</span>\n     */\n    settingStatus: string | null | undefined;\n\n    /**\n     * Minimum Bill/Meter Cost.  This audit will run only when the cost meets the specified minimum cost <span class='property-internal'>Required (defined)</span>\n     */\n    minimumCost: number | null | undefined;\n\n    /**\n     * List of Assignees.  Ids of the users the flag should get assigned to when the audit fails. <span class='property-internal'>Required (defined)</span>\n     */\n    assignees: Array<number> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { UserChild } from './userChild';\n\n\nexport class AbnormalBillCostWithOutlierAnalysisSettingResponse {\n    /**\n     * Minimum outlier sensitivity for abnormal cost analysis Possible values - severe, high, moderate If SettingStatus is set to Skip and no value is provided, EnergyCAP default will be set\n     */\n    sensitivity: string | null | undefined;\n\n    /**\n     * The status of the audit setting - Possible values Check, Hold, Skip\n     */\n    settingStatus: string | null | undefined;\n\n    /**\n     * The setting code\n     */\n    settingCode: string | null | undefined;\n\n    /**\n     * A description of the setting\n     */\n    settingDescription: string | null | undefined;\n\n    /**\n     * Minimum Bill/Meter Cost.  This audit wwill run only when the cost meets the specified minimum cost\n     */\n    minimumCost: number | null | undefined;\n\n    /**\n     * List of Assignees.  UserChildDTO representing the users the flag should get assigned to when the audit fails.\n     */\n    assignees: Array<UserChild> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class AbnormalBillDemandWithOutlierAnalysisSettingRequest {\n    /**\n     * Minimum outlier sensitivity for abnormal demand analysis If SettingStatus is set to Skip and no value is provided, EnergyCAP default will be set <span class='property-internal'>Required when SettingStatus is set to Check, or Hold</span> <span class='property-internal'>One of 'Severe', 'High', 'Moderate'</span>\n     */\n    sensitivity: string | null | undefined;\n\n    /**\n     * The status of the audit setting <span class='property-internal'>One of 'Check', 'Hold', 'Skip'</span> <span class='property-internal'>Required (defined)</span>\n     */\n    settingStatus: string | null | undefined;\n\n    /**\n     * Minimum Bill/Meter Cost.  This audit will run only when the cost meets the specified minimum cost <span class='property-internal'>Required (defined)</span>\n     */\n    minimumCost: number | null | undefined;\n\n    /**\n     * List of Assignees.  Ids of the users the flag should get assigned to when the audit fails. <span class='property-internal'>Required (defined)</span>\n     */\n    assignees: Array<number> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { UserChild } from './userChild';\n\n\nexport class AbnormalBillDemandWithOutlierAnalysisSettingResponse {\n    /**\n     * Minimum outlier sensitivity for abnormal demand analysis Possible values - severe, high, moderate If SettingStatus is set to Skip and no value is provided, EnergyCAP default will be set\n     */\n    sensitivity: string | null | undefined;\n\n    /**\n     * The status of the audit setting - Possible values Check, Hold, Skip\n     */\n    settingStatus: string | null | undefined;\n\n    /**\n     * The setting code\n     */\n    settingCode: string | null | undefined;\n\n    /**\n     * A description of the setting\n     */\n    settingDescription: string | null | undefined;\n\n    /**\n     * Minimum Bill/Meter Cost.  This audit wwill run only when the cost meets the specified minimum cost\n     */\n    minimumCost: number | null | undefined;\n\n    /**\n     * List of Assignees.  UserChildDTO representing the users the flag should get assigned to when the audit fails.\n     */\n    assignees: Array<UserChild> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class AbnormalBillUseWithOutlierAnalysisSettingRequest {\n    /**\n     * Minimum outlier sensitivity for abnormal use analysis If SettingStatus is set to Skip and no value is provided, EnergyCAP default will be set <span class='property-internal'>Required when SettingStatus is set to Check, or Hold</span> <span class='property-internal'>One of 'Severe', 'High', 'Moderate'</span>\n     */\n    sensitivity: string | null | undefined;\n\n    /**\n     * The status of the audit setting <span class='property-internal'>One of 'Check', 'Hold', 'Skip'</span> <span class='property-internal'>Required (defined)</span>\n     */\n    settingStatus: string | null | undefined;\n\n    /**\n     * Minimum Bill/Meter Cost.  This audit will run only when the cost meets the specified minimum cost <span class='property-internal'>Required (defined)</span>\n     */\n    minimumCost: number | null | undefined;\n\n    /**\n     * List of Assignees.  Ids of the users the flag should get assigned to when the audit fails. <span class='property-internal'>Required (defined)</span>\n     */\n    assignees: Array<number> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { UserChild } from './userChild';\n\n\nexport class AbnormalBillUseWithOutlierAnalysisSettingResponse {\n    /**\n     * Minimum outlier sensitivity for abnormal use analysis Possible values - severe, high, moderate If SettingStatus is set to Skip and no value is provided, EnergyCAP default will be set\n     */\n    sensitivity: string | null | undefined;\n\n    /**\n     * The status of the audit setting - Possible values Check, Hold, Skip\n     */\n    settingStatus: string | null | undefined;\n\n    /**\n     * The setting code\n     */\n    settingCode: string | null | undefined;\n\n    /**\n     * A description of the setting\n     */\n    settingDescription: string | null | undefined;\n\n    /**\n     * Minimum Bill/Meter Cost.  This audit wwill run only when the cost meets the specified minimum cost\n     */\n    minimumCost: number | null | undefined;\n\n    /**\n     * List of Assignees.  UserChildDTO representing the users the flag should get assigned to when the audit fails.\n     */\n    assignees: Array<UserChild> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class AccountAlertRequest {\n    /**\n     *  <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 1899-12-31 and 3000-01-01</span>\n     */\n    beginDate: Date | null ;\n\n    /**\n     *  <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 1899-12-31 and 3000-01-01</span> <span class='property-internal'>Must be greater than or equal to BeginDate</span>\n     */\n    endDate: Date | null ;\n\n    /**\n     *  <span class='property-internal'>Required</span>\n     */\n    message: string | null ;\n\n    /**\n     *  <span class='property-internal'>Required</span>\n     */\n    allowBillProcessing: boolean | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class AccountAlertResponse {\n    /**\n     * \n     */\n    alertId: number | null | undefined;\n\n    /**\n     * \n     */\n    beginDate: Date | null | undefined;\n\n    /**\n     * \n     */\n    endDate: Date | null | undefined;\n\n    /**\n     * \n     */\n    message: string | null | undefined;\n\n    /**\n     * \n     */\n    allowBillProcessing: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class AccountAuditEnable {\n    /**\n     * List of AccountIds to try and update <span class='property-internal'>Cannot be Empty</span> <span class='property-internal'>Required (defined)</span>\n     */\n    accountIds: Array<number> | null | undefined;\n\n    /**\n     * True to allow the accounts' bills to be audited False to exclude the accounts' bills from being audited <span class='property-internal'>Required (defined)</span>\n     */\n    auditEnabled: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AbnormalBillCostWithOutlierAnalysisSettingRequest } from './abnormalBillCostWithOutlierAnalysisSettingRequest';\nimport { AbnormalBillDemandWithOutlierAnalysisSettingRequest } from './abnormalBillDemandWithOutlierAnalysisSettingRequest';\nimport { AbnormalBillUseWithOutlierAnalysisSettingRequest } from './abnormalBillUseWithOutlierAnalysisSettingRequest';\nimport { AuditSettingRequest } from './auditSettingRequest';\nimport { BillContainsLineItemDescriptionsSettingRequest } from './billContainsLineItemDescriptionsSettingRequest';\nimport { BillContainsLineItemTypesSettingRequest } from './billContainsLineItemTypesSettingRequest';\nimport { BillSignificantlyShorterOrLongerThanPreviousSettingRequest } from './billSignificantlyShorterOrLongerThanPreviousSettingRequest';\nimport { DueDateTooLongAfterBillEndSettingRequest } from './dueDateTooLongAfterBillEndSettingRequest';\nimport { StatementDateTooLongAfterBillEndSettingRequest } from './statementDateTooLongAfterBillEndSettingRequest';\nimport { TooManyConsecutiveEstimatedBillsSettingRequest } from './tooManyConsecutiveEstimatedBillsSettingRequest';\nimport { TotalBillCostDoesNotMatchLineItemTypesSettingRequest } from './totalBillCostDoesNotMatchLineItemTypesSettingRequest';\n\n\nexport class AccountAuditSettingsRequest {\n    billContainsLineItemDescriptions: BillContainsLineItemDescriptionsSettingRequest | null | undefined;\n\n    billContainsLineItemTypes: BillContainsLineItemTypesSettingRequest | null | undefined;\n\n    totalBillCostDoesNotMatchLineItemTypes: TotalBillCostDoesNotMatchLineItemTypesSettingRequest | null | undefined;\n\n    billingPeriodOutsideStartEndDates: AuditSettingRequest | null | undefined;\n\n    billOverlapsWithOtherAccountBill: AuditSettingRequest | null | undefined;\n\n    gapBetweenBillAndPreviousBillOnAccount: AuditSettingRequest | null | undefined;\n\n    billEndsInFuture: AuditSettingRequest | null | undefined;\n\n    accountHasMultipleBillsInBillingPeriod: AuditSettingRequest | null | undefined;\n\n    statementDateBeforeEndDate: AuditSettingRequest | null | undefined;\n\n    dueDateBeforeEndDate: AuditSettingRequest | null | undefined;\n\n    billSignificantlyShorterOrLongerThanPrevious: BillSignificantlyShorterOrLongerThanPreviousSettingRequest | null | undefined;\n\n    tooManyConsecutiveEstimatedBills: TooManyConsecutiveEstimatedBillsSettingRequest | null | undefined;\n\n    dueDateTooLongAfterBillEnd: DueDateTooLongAfterBillEndSettingRequest | null | undefined;\n\n    statementDateTooLongAfterBillEnd: StatementDateTooLongAfterBillEndSettingRequest | null | undefined;\n\n    invoiceNumberIsRepeatedOnAccount: AuditSettingRequest | null | undefined;\n\n    likelyDuplicateBillOnAccount: AuditSettingRequest | null | undefined;\n\n    totalMeterCostIsPercentageHigherThanPastYear: AuditSettingRequest | null | undefined;\n\n    totalMeterUseIsPercentageHigherThanPastYear: AuditSettingRequest | null | undefined;\n\n    serialNumberDoesNotMatchImportFile: AuditSettingRequest | null | undefined;\n\n    rateCodeDoesNotMatchImportFile: AuditSettingRequest | null | undefined;\n\n    importFileStartDateAdjustedToPreventGaps: AuditSettingRequest | null | undefined;\n\n    accountAlertExistsOnAccountInImportFile: AuditSettingRequest | null | undefined;\n\n    abnormalBillCostWithOutlierAnalysis: AbnormalBillCostWithOutlierAnalysisSettingRequest | null | undefined;\n\n    abnormalBillUseWithOutlierAnalysis: AbnormalBillUseWithOutlierAnalysisSettingRequest | null | undefined;\n\n    abnormalBillDemandWithOutlierAnalysis: AbnormalBillDemandWithOutlierAnalysisSettingRequest | null | undefined;\n\n    currencyUnitAnalysis: AuditSettingRequest | null | undefined;\n\n    multipleUseUnitAnalysis: AuditSettingRequest | null | undefined;\n\n    billUseUnitDifferentFromMeterAnalysis: AuditSettingRequest | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AccountChild } from './accountChild';\nimport { AuditSettingsResponse } from './auditSettingsResponse';\n\n\nexport class AccountAuditSettingsResponse {\n    account: AccountChild | null | undefined;\n\n    /**\n     * Indicates if audits are enabled for the account\n     */\n    auditEnabled: boolean | null | undefined;\n\n    settings: AuditSettingsResponse | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CostCategoryResponse } from './costCategoryResponse';\n\n\nexport class AccountBillAccountChargeSplitSettingsResponse {\n    /**\n     * The account identifier\n     */\n    accountId: number | null | undefined;\n\n    /**\n     * The account code\n     */\n    accountCode: string | null | undefined;\n\n    /**\n     * The account info\n     */\n    accountInfo: string | null | undefined;\n\n    /**\n     * The vendor identifier\n     */\n    vendorId: number | null | undefined;\n\n    /**\n     * The vendor code\n     */\n    vendorCode: string | null | undefined;\n\n    /**\n     * The vendor info\n     */\n    vendorInfo: string | null | undefined;\n\n    /**\n     * Split account charges with a bill line type assigned to the cost categories\n     */\n    costCategories: Array<CostCategoryResponse> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { VendorChild } from './vendorChild';\n\n\nexport class AccountChild {\n    /**\n     * \n     */\n    accountId: number | null | undefined;\n\n    /**\n     * \n     */\n    accountCode: string | null | undefined;\n\n    /**\n     * \n     */\n    accountInfo: string | null | undefined;\n\n    vendor: VendorChild | null | undefined;\n\n    /**\n     * \n     */\n    active: boolean | null | undefined;\n\n    /**\n     * \n     */\n    hasCalculatedMeter: boolean | null | undefined;\n\n    /**\n     * \n     */\n    hasSplitParentMeter: boolean | null | undefined;\n\n    /**\n     * \n     */\n    hasSplitChildMeter: boolean | null | undefined;\n\n    /**\n     * \n     */\n    isSubAccount: boolean | null | undefined;\n\n    /**\n     * \n     */\n    hasSubAccount: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AccountTypeChild } from './accountTypeChild';\nimport { VendorChild } from './vendorChild';\n\n\nexport class AccountChildWithType {\n    accountType: AccountTypeChild | null | undefined;\n\n    /**\n     * \n     */\n    accountId: number | null | undefined;\n\n    /**\n     * \n     */\n    accountCode: string | null | undefined;\n\n    /**\n     * \n     */\n    accountInfo: string | null | undefined;\n\n    vendor: VendorChild | null | undefined;\n\n    /**\n     * \n     */\n    active: boolean | null | undefined;\n\n    /**\n     * \n     */\n    hasCalculatedMeter: boolean | null | undefined;\n\n    /**\n     * \n     */\n    hasSplitParentMeter: boolean | null | undefined;\n\n    /**\n     * \n     */\n    hasSplitChildMeter: boolean | null | undefined;\n\n    /**\n     * \n     */\n    isSubAccount: boolean | null | undefined;\n\n    /**\n     * \n     */\n    hasSubAccount: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class AccountCodeHistoryChild {\n    /**\n     * The previous account code of this account\n     */\n    previousAccountCode: string | null | undefined;\n\n    /**\n     * Date that the account code was changed\n     */\n    endDate: Date | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class AccountCodeHistoryRequest {\n    /**\n     * Account code that will replace the existing one <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 50 characters</span>\n     */\n    newAccountCode: string | null ;\n\n    /**\n     * Account info that can replace the existing info <span class='property-internal'>Must be between 0 and 50 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    newAccountInfo: string | null | undefined;\n\n    /**\n     * Date that the account code was changed <span class='property-internal'>Required (defined)</span>\n     */\n    codeChangeDate: Date | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AccountCodeHistoryChild } from './accountCodeHistoryChild';\n\n\nexport class AccountCodeHistoryResponse {\n    /**\n     * Account identifier <span class='property-internal'>Required (defined)</span>\n     */\n    accountId: number | null | undefined;\n\n    /**\n     * Account code of the account <span class='property-internal'>Required (defined)</span>\n     */\n    accountCode: string | null | undefined;\n\n    /**\n     * Name of the account <span class='property-internal'>Required (defined)</span>\n     */\n    accountInfo: string | null | undefined;\n\n    accountCodeHistory: AccountCodeHistoryChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class AccountConnectionStatusResponse {\n    /**\n     * When true this database is connectable to Portfolio Manager\n     */\n    connectable: boolean | null | undefined;\n\n    /**\n     * Whether some other database is registered to portfolio manager or not\n     */\n    otherDatabaseRegistered: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AddressChildBase } from './addressChildBase';\n\n\nexport class AccountCreate {\n    /**\n     * The account code <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 50 characters</span>\n     */\n    accountCode: string | null ;\n\n    /**\n     * The account info <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 50 characters</span>\n     */\n    accountInfo: string | null ;\n\n    /**\n     * The identifier for the account type <span class='property-internal'>Required</span>\n     */\n    accountTypeId: number | null ;\n\n    /**\n     * The identifier for the cost center to which the account belongs <span class='property-internal'>Topmost (CostCenter)</span> <span class='property-internal'>Required</span>\n     */\n    costCenterId: number | null ;\n\n    /**\n     * The identifier for the account's vendor <span class='property-internal'>Required</span>\n     */\n    vendorId: number | null ;\n\n    /**\n     * The identifier for the customer the account serves. This is normally only set for chargeback accounts\n     */\n    customerId: number | null | undefined;\n\n    /**\n     * The identifier for the account's contact\n     */\n    contactId: number | null | undefined;\n\n    /**\n     * Indicates if the account is active or inactive\n     */\n    active: boolean | null | undefined;\n\n    /**\n     * Indicates if the account is used with accruals\n     */\n    accrualEnabled: boolean | null | undefined;\n\n    /**\n     * The address postal code Required when the country is US or CA <span class='property-internal'>Must be between 0 and 32 characters</span>\n     */\n    postalCode: string | null | undefined;\n\n    /**\n     * The address city <span class='property-internal'>Must be between 0 and 100 characters</span>\n     */\n    city: string | null | undefined;\n\n    /**\n     * The address state <span class='property-internal'>Must be between 0 and 100 characters</span>\n     */\n    state: string | null | undefined;\n\n    /**\n     * The address country <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 64 characters</span>\n     */\n    country: string | null ;\n\n    /**\n     * The address first line <span class='property-internal'>Must be between 0 and 100 characters</span>\n     */\n    line1: string | null | undefined;\n\n    /**\n     * The address second line <span class='property-internal'>Must be between 0 and 100 characters</span>\n     */\n    line2: string | null | undefined;\n\n    /**\n     * The address third line <span class='property-internal'>Must be between 0 and 100 characters</span>\n     */\n    line3: string | null | undefined;\n\n    /**\n     * The date and time the account deposit was paid\n     */\n    depositPaid: Date | null | undefined;\n\n    /**\n     * The date and time the account deposit was returned\n     */\n    depositReturn: Date | null | undefined;\n\n    /**\n     * A note related to the account deposit\n     */\n    depositNote: string | null | undefined;\n\n    /**\n     * The account deposit amount\n     */\n    depositAmount: number | null | undefined;\n\n    /**\n     * The account memo\n     */\n    memo: string | null | undefined;\n\n    /**\n     * The account's service begin date and time\n     */\n    serviceStart: Date | null | undefined;\n\n    /**\n     * The account's service end date and time <span class='property-internal'>Must be greater than ServiceStart</span>\n     */\n    serviceEnd: Date | null | undefined;\n\n    /**\n     * An array of identifiers for meters attached to this account\n     */\n    meters: Array<number> | null | undefined;\n\n    /**\n     * The identifier for the account's generalLedgerId\n     */\n    generalLedgerId: number | null | undefined;\n\n    /**\n     * A description of the account <span class='property-internal'>Must be between 0 and 4000 characters</span>\n     */\n    accountDescription: string | null | undefined;\n\n    remitAddress: AddressChildBase | null | undefined;\n\n    /**\n     * The remit email <span class='property-internal'>Must be between 0 and 128 characters</span>\n     */\n    remitEmail: string | null | undefined;\n\n    /**\n     * The remit phone number <span class='property-internal'>Must be between 0 and 50 characters</span>\n     */\n    remitPhoneNumber: string | null | undefined;\n\n    /**\n     * Indicates whether the account is a landlord account\n     */\n    landlordAccount: boolean | null | undefined;\n\n    /**\n     * The BillCapture bill acquisition method for the account EnergyCap.Shared.Common.Utilities.BillCaptureAccountBillAcquisitionMethod <span class='property-internal'>One of 'Customer_Upload', 'Mail_Redirect', 'Web_Download', 'Web_Download_And_Extract_1', 'Web_Download_And_Extract_2', 'EDI', 'Custom_Import', 'Email_Delivery'</span>\n     */\n    billAcquisitionMethod: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AccountDigestActualMonthlyResponseCommodityData } from './accountDigestActualMonthlyResponseCommodityData';\nimport { AccountDigestActualMonthlyResponseResults } from './accountDigestActualMonthlyResponseResults';\nimport { UnitChild } from './unitChild';\n\n\nexport class AccountDigestActualMonthlyResponse {\n    /**\n     * The account code\n     */\n    accountCode: string | null | undefined;\n\n    /**\n     * The account info\n     */\n    accountInfo: string | null | undefined;\n\n    /**\n     * The account identifier\n     */\n    accountId: number | null | undefined;\n\n    /**\n     * The date and time the data was updated\n     */\n    updated: Date | null | undefined;\n\n    globalUseUnit: UnitChild | null | undefined;\n\n    costUnit: UnitChild | null | undefined;\n\n    /**\n     * An array of monthly data per commodity\n     */\n    commodities: Array<AccountDigestActualMonthlyResponseCommodityData> | null | undefined;\n\n    /**\n     * An array of monthly data\n     */\n    results: Array<AccountDigestActualMonthlyResponseResults> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AccountDigestActualMonthlyResponseCommodityResults } from './accountDigestActualMonthlyResponseCommodityResults';\nimport { UnitChild } from './unitChild';\n\n\nexport class AccountDigestActualMonthlyResponseCommodityData {\n    /**\n     * The commodity code\n     */\n    commodityCode: string | null | undefined;\n\n    /**\n     * The commodity info\n     */\n    commodityInfo: string | null | undefined;\n\n    /**\n     * The commodity identifier\n     */\n    commodityId: number | null | undefined;\n\n    commonUseUnit: UnitChild | null | undefined;\n\n    costUnit: UnitChild | null | undefined;\n\n    /**\n     * An array of commodity monthly data\n     */\n    results: Array<AccountDigestActualMonthlyResponseCommodityResults> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class AccountDigestActualMonthlyResponseCommodityResults {\n    /**\n     * Calendar Period Name\n     */\n    periodName: string | null | undefined;\n\n    /**\n     * Calendar Period\n     */\n    calendarPeriod: number | null | undefined;\n\n    /**\n     * Calendar Year\n     */\n    calendarYear: number | null | undefined;\n\n    /**\n     * Fiscal Period\n     */\n    fiscalPeriod: number | null | undefined;\n\n    /**\n     * Fiscal Year\n     */\n    fiscalYear: number | null | undefined;\n\n    /**\n     * Total Cost\n     */\n    totalCost: number | null | undefined;\n\n    /**\n     * Common Use\n     */\n    commonUse: number | null | undefined;\n\n    /**\n     * Common Use Unit Cost\n     */\n    commonUseUnitCost: number | null | undefined;\n\n    /**\n     * Global Use\n     */\n    globalUse: number | null | undefined;\n\n    /**\n     * Global Use Unit Cost\n     */\n    globalUseUnitCost: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class AccountDigestActualMonthlyResponseResults {\n    /**\n     * Calendar Period Name\n     */\n    periodName: string | null | undefined;\n\n    /**\n     * Calendar Period\n     */\n    calendarPeriod: number | null | undefined;\n\n    /**\n     * Calendar Year\n     */\n    calendarYear: number | null | undefined;\n\n    /**\n     * Fiscal Period\n     */\n    fiscalPeriod: number | null | undefined;\n\n    /**\n     * Fiscal Year\n     */\n    fiscalYear: number | null | undefined;\n\n    /**\n     * Total Cost\n     */\n    totalCost: number | null | undefined;\n\n    /**\n     * Global Use\n     */\n    globalUse: number | null | undefined;\n\n    /**\n     * Global Use Unit Cost\n     */\n    globalUseUnitCost: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AccountDigestActualYearlyResponseCommodityData } from './accountDigestActualYearlyResponseCommodityData';\nimport { AccountDigestActualYearlyResponseResults } from './accountDigestActualYearlyResponseResults';\nimport { UnitChild } from './unitChild';\n\n\nexport class AccountDigestActualYearlyResponse {\n    /**\n     * The account code\n     */\n    accountCode: string | null | undefined;\n\n    /**\n     * The account info\n     */\n    accountInfo: string | null | undefined;\n\n    /**\n     * The account identifier\n     */\n    accountId: number | null | undefined;\n\n    globalUseUnit: UnitChild | null | undefined;\n\n    costUnit: UnitChild | null | undefined;\n\n    /**\n     * The date and time the data was updated\n     */\n    updated: Date | null | undefined;\n\n    /**\n     * An array of yearly data\n     */\n    results: Array<AccountDigestActualYearlyResponseResults> | null | undefined;\n\n    /**\n     * An array of yearly data per commodity\n     */\n    commodities: Array<AccountDigestActualYearlyResponseCommodityData> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AccountDigestActualYearlyResponseCommodityResults } from './accountDigestActualYearlyResponseCommodityResults';\nimport { UnitChild } from './unitChild';\n\n\nexport class AccountDigestActualYearlyResponseCommodityData {\n    /**\n     * The commodity code\n     */\n    commodityCode: string | null | undefined;\n\n    /**\n     * The commodity info\n     */\n    commodityInfo: string | null | undefined;\n\n    /**\n     * The commodity identifier\n     */\n    commodityId: number | null | undefined;\n\n    commonUseUnit: UnitChild | null | undefined;\n\n    costUnit: UnitChild | null | undefined;\n\n    /**\n     * An array of yearly data\n     */\n    results: Array<AccountDigestActualYearlyResponseCommodityResults> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class AccountDigestActualYearlyResponseCommodityResults {\n    /**\n     * year\n     */\n    year: string | null | undefined;\n\n    /**\n     * Total Cost\n     */\n    totalCost: number | null | undefined;\n\n    /**\n     * Common Use\n     */\n    commonUse: number | null | undefined;\n\n    /**\n     * Common Use Unit Cost\n     */\n    commonUseUnitCost: number | null | undefined;\n\n    /**\n     * Global Use\n     */\n    globalUse: number | null | undefined;\n\n    /**\n     * Global Use Unit Cost\n     */\n    globalUseUnitCost: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class AccountDigestActualYearlyResponseResults {\n    /**\n     * Year\n     */\n    year: string | null | undefined;\n\n    /**\n     * Total Cost\n     */\n    totalCost: number | null | undefined;\n\n    /**\n     * Global Use\n     */\n    globalUse: number | null | undefined;\n\n    /**\n     * Global Use Unit Cost\n     */\n    globalUseUnitCost: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AddressChildBase } from './addressChildBase';\n\n\nexport class AccountEdit {\n    /**\n     * An array of account code aliases. Account alias cannot match an existing account code or another alias in the system.  All alias entries will replace existing ones. Empty or null array will remove all existing aliases.  Maximum of 5 aliases, each with a maximum length of 50 characters. <span class='property-internal'>Max length of 5</span> <span class='property-internal'>Required (defined)</span>\n     */\n    accountCodeAliases: Array<string> | null | undefined;\n\n    /**\n     * Indicates whether the account is a landlord account <span class='property-internal'>Required (defined)</span>\n     */\n    landlordAccount: boolean | null | undefined;\n\n    /**\n     * The BillCapture bill acquisition method for the account EnergyCap.Shared.Common.Utilities.BillCaptureAccountBillAcquisitionMethod <span class='property-internal'>One of 'Customer_Upload', 'Mail_Redirect', 'Web_Download', 'Web_Download_And_Extract_1', 'Web_Download_And_Extract_2', 'EDI', 'Custom_Import', 'Email_Delivery'</span> <span class='property-internal'>Required (defined)</span>\n     */\n    billAcquisitionMethod: string | null | undefined;\n\n    remitAddress: AddressChildBase | null | undefined;\n\n    /**\n     * The remit email <span class='property-internal'>Must be between 0 and 128 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    remitEmail: string | null | undefined;\n\n    /**\n     * The remit phone number <span class='property-internal'>Must be between 0 and 50 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    remitPhoneNumber: string | null | undefined;\n\n    /**\n     * The account code <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 50 characters</span>\n     */\n    accountCode: string | null ;\n\n    /**\n     * The account info <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 50 characters</span>\n     */\n    accountInfo: string | null ;\n\n    /**\n     * The identifier for the cost center to which the account belongs <span class='property-internal'>Topmost (CostCenter)</span> <span class='property-internal'>Required</span>\n     */\n    costCenterId: number | null ;\n\n    /**\n     * The identifier for the customer the account serves. This is normally only set for chargeback accounts <span class='property-internal'>Required (defined)</span>\n     */\n    customerId: number | null | undefined;\n\n    /**\n     * The identifier for the account's contact <span class='property-internal'>Required (defined)</span>\n     */\n    contactId: number | null | undefined;\n\n    /**\n     * Indicates if the account is active or inactive <span class='property-internal'>Required (defined)</span>\n     */\n    active: boolean | null | undefined;\n\n    /**\n     * Indicates if the account is used with accruals <span class='property-internal'>Required (defined)</span>\n     */\n    accrualEnabled: boolean | null | undefined;\n\n    /**\n     * The address postal code Required when country is US or CA <span class='property-internal'>Must be between 0 and 32 characters</span>\n     */\n    postalCode: string | null | undefined;\n\n    /**\n     * The address city <span class='property-internal'>Must be between 0 and 100 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    city: string | null | undefined;\n\n    /**\n     * The address state <span class='property-internal'>Must be between 0 and 100 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    state: string | null | undefined;\n\n    /**\n     * The address country <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 64 characters</span>\n     */\n    country: string | null ;\n\n    /**\n     * The address first line <span class='property-internal'>Must be between 0 and 100 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    line1: string | null | undefined;\n\n    /**\n     * The address second line <span class='property-internal'>Must be between 0 and 100 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    line2: string | null | undefined;\n\n    /**\n     * The address third line <span class='property-internal'>Must be between 0 and 100 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    line3: string | null | undefined;\n\n    /**\n     * The date and time the account deposit was paid <span class='property-internal'>Required (defined)</span>\n     */\n    depositPaid: Date | null | undefined;\n\n    /**\n     * The date and time the account deposit was returned <span class='property-internal'>Required (defined)</span>\n     */\n    depositReturn: Date | null | undefined;\n\n    /**\n     * A note related to the account deposit <span class='property-internal'>Required (defined)</span>\n     */\n    depositNote: string | null | undefined;\n\n    /**\n     * The account deposit amount <span class='property-internal'>Required (defined)</span>\n     */\n    depositAmount: number | null | undefined;\n\n    /**\n     * The account memo <span class='property-internal'>Required (defined)</span>\n     */\n    memo: string | null | undefined;\n\n    /**\n     * The account's service begin date and time <span class='property-internal'>Required (defined)</span>\n     */\n    serviceStart: Date | null | undefined;\n\n    /**\n     * The account's service end date and time <span class='property-internal'>Must be greater than ServiceStart</span> <span class='property-internal'>Required (defined)</span>\n     */\n    serviceEnd: Date | null | undefined;\n\n    /**\n     * The identifier for the account's generalLedgerId <span class='property-internal'>Required (defined)</span>\n     */\n    generalLedgerId: number | null | undefined;\n\n    /**\n     * A description of the account <span class='property-internal'>Must be between 0 and 4000 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    accountDescription: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CommodityChild } from './commodityChild';\nimport { GeneralLedgerChild } from './generalLedgerChild';\nimport { PlaceChild } from './placeChild';\nimport { VendorTypeChild } from './vendorTypeChild';\n\n\nexport class AccountMeterChild {\n    /**\n     * The AccountMeter identifier\n     */\n    accountMeterId: number | null | undefined;\n\n    /**\n     * The beginning date and time for this AccountMeter relationship\n     */\n    startDate: Date | null | undefined;\n\n    /**\n     * The ending date and time for this AccountMeter relationship\n     */\n    endDate: Date | null | undefined;\n\n    /**\n     * The Meter identifier for this AccountMeter\n     */\n    meterId: number | null | undefined;\n\n    /**\n     * The code of the Meter for this AccountMeter\n     */\n    meterCode: string | null | undefined;\n\n    /**\n     * The info of the Meter for this AccountMeter\n     */\n    meterInfo: string | null | undefined;\n\n    place: PlaceChild | null | undefined;\n\n    commodity: CommodityChild | null | undefined;\n\n    meterGeneralLedger: GeneralLedgerChild | null | undefined;\n\n    vendorType: VendorTypeChild | null | undefined;\n\n    /**\n     * Indicates whether the Meter is Active\n     */\n    active: boolean | null | undefined;\n\n    /**\n     * Indicates whether the Meter is a calculated meter\n     */\n    isCalculatedMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the Meter is a parent of a split\n     */\n    isSplitParentMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the Meter is a child of a split\n     */\n    isSplitChildMeter: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CommodityChild } from './commodityChild';\nimport { GeneralLedgerChild } from './generalLedgerChild';\nimport { PlaceChild } from './placeChild';\nimport { VendorTypeChild } from './vendorTypeChild';\n\n\nexport class AccountMeterChildWithSerialNumber {\n    /**\n     * The Serial Number of the Meter\n     */\n    serialNumber: string | null | undefined;\n\n    /**\n     * The AccountMeter identifier\n     */\n    accountMeterId: number | null | undefined;\n\n    /**\n     * The beginning date and time for this AccountMeter relationship\n     */\n    startDate: Date | null | undefined;\n\n    /**\n     * The ending date and time for this AccountMeter relationship\n     */\n    endDate: Date | null | undefined;\n\n    /**\n     * The Meter identifier for this AccountMeter\n     */\n    meterId: number | null | undefined;\n\n    /**\n     * The code of the Meter for this AccountMeter\n     */\n    meterCode: string | null | undefined;\n\n    /**\n     * The info of the Meter for this AccountMeter\n     */\n    meterInfo: string | null | undefined;\n\n    place: PlaceChild | null | undefined;\n\n    commodity: CommodityChild | null | undefined;\n\n    meterGeneralLedger: GeneralLedgerChild | null | undefined;\n\n    vendorType: VendorTypeChild | null | undefined;\n\n    /**\n     * Indicates whether the Meter is Active\n     */\n    active: boolean | null | undefined;\n\n    /**\n     * Indicates whether the Meter is a calculated meter\n     */\n    isCalculatedMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the Meter is a parent of a split\n     */\n    isSplitParentMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the Meter is a child of a split\n     */\n    isSplitChildMeter: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class AccountMeterEdit {\n    /**\n     * The beginning date and time for this account meter relationship <span class='property-internal'>Must be between 1899-12-31 and 3000-01-01</span> <span class='property-internal'>Required (defined)</span>\n     */\n    beginDate: Date | null | undefined;\n\n    /**\n     * The ending date and time for this account meter relationship <span class='property-internal'>Must be greater than BeginDate</span> <span class='property-internal'>Must be between 1899-12-31 and 3000-01-01</span> <span class='property-internal'>Required (defined)</span>\n     */\n    endDate: Date | null | undefined;\n\n    /**\n     * The identifier for the general ledger assigned to this account meter <span class='property-internal'>Required (defined)</span>\n     */\n    generalLedgerId: number | null | undefined;\n\n    /**\n     * The identifier for the vendor type. Vendors may assume different types on different account meters <span class='property-internal'>Required (defined)</span>\n     */\n    vendorTypeId: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class AccountMeterRateResponse {\n    /**\n     * The account meter tariff identifier <span class='property-internal'>Required (defined)</span>\n     */\n    rateId: number | null | undefined;\n\n    /**\n     * The rate name <span class='property-internal'>Required (defined)</span>\n     */\n    name: string | null | undefined;\n\n    /**\n     * The rate code <span class='property-internal'>Required (defined)</span>\n     */\n    rateCode: string | null | undefined;\n\n    /**\n     * The rate's note <span class='property-internal'>Required (defined)</span>\n     */\n    note: string | null | undefined;\n\n    /**\n     * The start date for the rate on the account meter <span class='property-internal'>Required (defined)</span>\n     */\n    startDate: Date | null | undefined;\n\n    /**\n     * The end date for the rate on the account meter <span class='property-internal'>Required (defined)</span>\n     */\n    endDate: Date | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class AccountMeterRequest {\n    /**\n     * The account identifier for this account meter <span class='property-internal'>Required</span> <span class='property-internal'>Topmost (Account)</span>\n     */\n    accountId: number | null ;\n\n    /**\n     * The meter identifier for this account meter <span class='property-internal'>Required</span> <span class='property-internal'>Topmost (Meter)</span>\n     */\n    meterId: number | null ;\n\n    /**\n     * The beginning date and time for this account meter relationship Defaults to 1899-01-01\n     */\n    beginDate: Date | null | undefined;\n\n    /**\n     * The ending date and time for this account meter relationship Defaults to 3000-01-01\n     */\n    endDate: Date | null | undefined;\n\n    /**\n     * The identifier for the general ledger assigned to this account meter\n     */\n    generalLedgerId: number | null | undefined;\n\n    /**\n     * The identifier for the vendor type. Vendors may assume different types on different account meters\n     */\n    vendorTypeId: number | null | undefined;\n\n    /**\n     * Indicates if the account meter is deregulated\n     */\n    deregulated: boolean | null | undefined;\n\n    /**\n     * The account meter template to be used for bill entry Optional.  If passed in, the templateId will be used. If not passed If vendortypeid is 2 (supplier),  --then a template on this meter's commodity with code that starts with S_meter's use unit code will be used --if not found we will try to use a template on this meter's commodity with code that starts with S_ --If not found we will use a non-supplier template described below If vendortype is non- supplier  -- the template will be defaulted using the meter's assigned use and demand units  --First try and match template by commodityId, useUnitId, demandUnitId  --If no match try commodityId, useUnitId  --If no match select the first use only template that matches on commodity  --If no match find the first template on this commodity  --If none is found no template will be assigned\n     */\n    templateId: number | null | undefined;\n\n    /**\n     * Indicates if the account meter rate <span class='property-internal'>Required</span>\n     */\n    rateId: number | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AccountChild } from './accountChild';\nimport { AccountRateChild } from './accountRateChild';\nimport { FormTemplateChild } from './formTemplateChild';\nimport { GeneralLedgerChild } from './generalLedgerChild';\nimport { MeterChild } from './meterChild';\nimport { VendorTypeChild } from './vendorTypeChild';\n\n\nexport class AccountMeterResponse {\n    /**\n     * The account meter identifier <span class='property-internal'>Required (defined)</span>\n     */\n    accountMeterId: number | null | undefined;\n\n    account: AccountChild | null | undefined;\n\n    meter: MeterChild | null | undefined;\n\n    /**\n     * The beginning date and time for this account meter relationship <span class='property-internal'>Required (defined)</span>\n     */\n    beginDate: Date | null | undefined;\n\n    /**\n     * The ending date and time for this account meter relationship <span class='property-internal'>Required (defined)</span>\n     */\n    endDate: Date | null | undefined;\n\n    generalLedger: GeneralLedgerChild | null | undefined;\n\n    vendorType: VendorTypeChild | null | undefined;\n\n    /**\n     * Indicates if the account meter is deregulated <span class='property-internal'>Required (defined)</span>\n     */\n    deregulated: boolean | null | undefined;\n\n    /**\n     * The template assigned to this account meter <span class='property-internal'>Required (defined)</span>\n     */\n    formTemplates: Array<FormTemplateChild> | null | undefined;\n\n    /**\n     * The rate assigned to this account meter <span class='property-internal'>Required (defined)</span>\n     */\n    rates: Array<AccountRateChild> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class AccountOrMeterUsage {\n    /**\n     * Number of chargeback accounts or meters.\n     */\n    chargeback: number | null | undefined;\n\n    /**\n     * Number of non-chargeback accounts or meters.\n     */\n    nonChargeback: number | null | undefined;\n\n    /**\n     * Number of inactive accounts or meters.\n     */\n    inactive: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class AccountPeriodRequest {\n    /**\n     * The period number When submitted with a list of other account periods, there cannot be more than one account period with the same periodNumber <span class='property-internal'>Must be between 1 and 12</span> <span class='property-internal'>Required (defined)</span>\n     */\n    periodNumber: number | null | undefined;\n\n    /**\n     * The name of the period <span class='property-internal'>Max length of 32</span> <span class='property-internal'>Required (defined)</span>\n     */\n    name: string | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class AccountPeriodResponse {\n    /**\n     * The account period identifier\n     */\n    accountPeriodId: number | null | undefined;\n\n    /**\n     * The period number\n     */\n    periodNumber: number | null | undefined;\n\n    /**\n     * The name of the period\n     */\n    name: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { RateChild } from './rateChild';\n\n\nexport class AccountRateChild {\n    rate: RateChild | null | undefined;\n\n    /**\n     * \n     */\n    startDate: Date | null | undefined;\n\n    /**\n     * \n     */\n    endDate: Date | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class AccountRateRequest {\n    /**\n     * The identifier for the rate to assign to the accountMeter <span class='property-internal'>Required</span> <span class='property-internal'>Required</span>\n     */\n    rateId: number | null ;\n\n    /**\n     * The start date for the accountRate <span class='property-internal'>Required</span> <span class='property-internal'>Required</span>\n     */\n    startDate: Date | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AccountMeterChild } from './accountMeterChild';\nimport { VendorChild } from './vendorChild';\n\n\nexport class AccountRateResponse {\n    /**\n     * The meter tariff identifier\n     */\n    rateId: number | null | undefined;\n\n    /**\n     * The rate name\n     */\n    name: string | null | undefined;\n\n    /**\n     * The rate code\n     */\n    rateCode: string | null | undefined;\n\n    /**\n     * The start date for the rate on the account meter\n     */\n    startDate: Date | null | undefined;\n\n    /**\n     * The end date for the rate on the account meter\n     */\n    endDate: Date | null | undefined;\n\n    meter: AccountMeterChild | null | undefined;\n\n    vendor: VendorChild | null | undefined;\n\n    /**\n     * The rate's note\n     */\n    note: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AccountChild } from './accountChild';\nimport { AccountCodeHistoryChild } from './accountCodeHistoryChild';\nimport { AccountMeterChildWithSerialNumber } from './accountMeterChildWithSerialNumber';\nimport { AccountTypeChild } from './accountTypeChild';\nimport { AddressChild } from './addressChild';\nimport { ContactChild } from './contactChild';\nimport { CostCenterChild } from './costCenterChild';\nimport { CustomerChild } from './customerChild';\nimport { GeneralLedgerChild } from './generalLedgerChild';\nimport { UnitChild } from './unitChild';\nimport { UserChild } from './userChild';\nimport { VendorChild } from './vendorChild';\n\n\nexport class AccountResponse {\n    /**\n     * The account identifier\n     */\n    accountId: number | null | undefined;\n\n    /**\n     * The accountmeter identifier for the account\n     */\n    accountMeterId: number | null | undefined;\n\n    /**\n     * The account code\n     */\n    accountCode: string | null | undefined;\n\n    /**\n     * An array of account code aliases\n     */\n    accountCodeAliases: Array<string> | null | undefined;\n\n    /**\n     * The account info\n     */\n    accountInfo: string | null | undefined;\n\n    accountType: AccountTypeChild | null | undefined;\n\n    costCenter: CostCenterChild | null | undefined;\n\n    vendor: VendorChild | null | undefined;\n\n    contact: ContactChild | null | undefined;\n\n    customer: CustomerChild | null | undefined;\n\n    /**\n     * Indicates whether the Account is active or inactive\n     */\n    active: boolean | null | undefined;\n\n    /**\n     * Indicates if this account is used with accruals\n     */\n    accrualEnabled: boolean | null | undefined;\n\n    address: AddressChild | null | undefined;\n\n    /**\n     * The date and time a deposit was paid\n     */\n    depositPaid: Date | null | undefined;\n\n    /**\n     * The date and time the account deposit was returned\n     */\n    depositReturn: Date | null | undefined;\n\n    /**\n     * A note related to the account deposit\n     */\n    depositNote: string | null | undefined;\n\n    /**\n     * The account deposit amount\n     */\n    depositAmount: number | null | undefined;\n\n    /**\n     * The account memo\n     */\n    memo: string | null | undefined;\n\n    /**\n     * The account's service begin date and time\n     */\n    serviceStart: Date | null | undefined;\n\n    /**\n     * The account's service end date and time\n     */\n    serviceEnd: Date | null | undefined;\n\n    accountGeneralLedger: GeneralLedgerChild | null | undefined;\n\n    /**\n     * An array of identifiers for meters attached to this account\n     */\n    meters: Array<AccountMeterChildWithSerialNumber> | null | undefined;\n\n    createdBy: UserChild | null | undefined;\n\n    /**\n     * The date and time the account was created\n     */\n    createdDate: Date | null | undefined;\n\n    modifiedBy: UserChild | null | undefined;\n\n    /**\n     * The date and time of the most recent modification\n     */\n    modifiedDate: Date | null | undefined;\n\n    costUnit: UnitChild | null | undefined;\n\n    /**\n     * Indicates whether the Account has a child calculated meter\n     */\n    hasCalculatedMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the Account is a recipient of a split\n     */\n    hasSplitParentMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the Account has a child split meter\n     */\n    hasSplitChildMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the Account has a sub-account\n     */\n    hasSubAccount: boolean | null | undefined;\n\n    accountCodeHistory: AccountCodeHistoryChild | null | undefined;\n\n    /**\n     * A description of the account\n     */\n    accountDescription: string | null | undefined;\n\n    /**\n     * When true, bills for this account will be audited\n     */\n    auditEnabled: boolean | null | undefined;\n\n    /**\n     * The data access release identifier for this Account, null if there is no release.\n     */\n    dataAccessReleaseId: number | null | undefined;\n\n    /**\n     * Indicates if the DataAccessRelease is approved null if there is no release\n     */\n    dataAccessReleaseApproved: boolean | null | undefined;\n\n    remitAddress: AddressChild | null | undefined;\n\n    /**\n     * The remit email address\n     */\n    remitEmail: string | null | undefined;\n\n    /**\n     * The remit phone number\n     */\n    remitPhoneNumber: string | null | undefined;\n\n    /**\n     * If there are settings configured to split account charges for this account\n     */\n    splitAccountChargesConfigured: boolean | null | undefined;\n\n    summaryAccount: AccountChild | null | undefined;\n\n    /**\n     * Is this a landlord account?\n     */\n    landlordAccount: boolean | null | undefined;\n\n    /**\n     * The BillCapture calculated billing frequency for the account EnergyCap.Shared.Common.Utilities.BillCaptureAccountBillingFrequency\n     */\n    billingFrequency: string | null | undefined;\n\n    /**\n     * The BillCapture bill acquisition method for the account EnergyCap.Shared.Common.Utilities.BillCaptureAccountBillAcquisitionMethod\n     */\n    billAcquisitionMethod: string | null | undefined;\n\n    /**\n     * The BillCapture anticipated date of the next bill issue date for the account\n     */\n    billNextIssueDate: Date | null | undefined;\n\n    /**\n     * The BillCapture anticipated date of the next bill receipt date for the account\n     */\n    billNextReceiptDate: Date | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AccountMeterChild } from './accountMeterChild';\n\n\nexport class AccountTemplateResponse {\n    /**\n     * The meter form template identifier\n     */\n    formTemplateId: number | null | undefined;\n\n    /**\n     * The template name\n     */\n    templateInfo: string | null | undefined;\n\n    /**\n     * The template code\n     */\n    templateCode: string | null | undefined;\n\n    /**\n     * The start date for the form template on the account meter\n     */\n    startDate: Date | null | undefined;\n\n    /**\n     * The end date for the form template on the account meter\n     */\n    endDate: Date | null | undefined;\n\n    /**\n     * The form template's display order\n     */\n    displayOrder: number | null | undefined;\n\n    meter: AccountMeterChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class AccountTypeChild {\n    /**\n     * The account type identifier\n     */\n    accountTypeId: number | null | undefined;\n\n    /**\n     * The account type code\n     */\n    accountTypeCode: string | null | undefined;\n\n    /**\n     * The account type info\n     */\n    accountTypeInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { UDFFieldChild } from './uDFFieldChild';\n\n\nexport class AccountUDFResponse {\n    /**\n     * The account identifier\n     */\n    accountId: number | null | undefined;\n\n    /**\n     * The account code\n     */\n    accountCode: string | null | undefined;\n\n    /**\n     * The account info\n     */\n    accountInfo: string | null | undefined;\n\n    /**\n     * An array of user-defined fields (UDFs)\n     */\n    udfs: Array<UDFFieldChild> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class AccountingSettings {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class AccountingSettingsClassPermission {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AccountPeriodRequest } from './accountPeriodRequest';\n\n\nexport class AccountingSettingsRequest {\n    /**\n     * First month of fiscal year <span class='property-internal'>Must be between 1 and 12</span> <span class='property-internal'>Required (defined)</span>\n     */\n    fiscalYearStartMonth: number | null | undefined;\n\n    /**\n     * Fiscal year reflects the calendar year in which it Begins or Ends <span class='property-internal'>One of 'beginning', 'ending'</span> <span class='property-internal'>Case sensitive</span> <span class='property-internal'>Required (defined)</span>\n     */\n    fiscalYearDefinedAtYear: string | null | undefined;\n\n    /**\n     * Calendarization method Value will be one of \\\"monthly\\\", \\\"user-defined\\\" <span class='property-internal'>One of 'monthly', 'user-defined'</span> <span class='property-internal'>Case sensitive</span> <span class='property-internal'>Required (defined)</span>\n     */\n    calendarizationMethod: string | null | undefined;\n\n    /**\n     * List of accounting period names <span class='property-internal'>Required (defined)</span>\n     */\n    accountPeriods: Array<AccountPeriodRequest> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AccountPeriodResponse } from './accountPeriodResponse';\n\n\nexport class AccountingSettingsResponse {\n    /**\n     * First month of fiscal year Value will be from 1-12\n     */\n    fiscalYearStartMonth: number | null | undefined;\n\n    /**\n     * Fiscal year reflects the calendar year in which it Begins or Ends Value will be one of \\\"beginning\\\", \\\"ending\\\"\n     */\n    fiscalYearDefinedAtYear: string | null | undefined;\n\n    /**\n     * Calendarization method Value will be one of \\\"monthly\\\", \\\"user-defined\\\"\n     */\n    calendarizationMethod: string | null | undefined;\n\n    /**\n     * List of accounting period names\n     */\n    accountPeriods: Array<AccountPeriodResponse> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class Accounts {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    create: boolean | null | undefined;\n\n    /**\n     * \n     */\n    edit: boolean | null | undefined;\n\n    /**\n     * \n     */\n    delete: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class AccountsClassPermission {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    create: boolean | null | undefined;\n\n    /**\n     * \n     */\n    edit: boolean | null | undefined;\n\n    /**\n     * \n     */\n    delete: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class AccountsModule {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class AccountsModuleActualData {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class AccountsModuleActualDataClassPermission {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class AccountsModuleClassPermission {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class AccrualProcessorRequest {\n    /**\n     * The batch to create for accrual bills <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 255 characters</span>\n     */\n    batchCode: string | null ;\n\n    /**\n     * Use a safety net for accrued cost calculation?  - if we have usage and we are using an average unit cost safety net and the most recent unit cost does not vary more than the specified percentage from the historical average unit cost,     accrued cost = accrued use * most recent unit cost  - if we have usage and we are not using an average unit cost safety net or the most recent unit cost does vary more than the specified percentage from the historical average unit cost,     accrued cost = accrued use * average historical unit cost  - if we don't have usage,     accrued cost = historical average cost per day * number of days in accrual period <span class='property-internal'>Required</span>\n     */\n    aucSafetyNet: boolean | null ;\n\n    /**\n     * Percent of cost variance allowed when using average unit cost safety net <span class='property-internal'>Required when AucSafetyNet is set to True, case sensitive.</span>\n     */\n    aucPercentVarianceAllowed: number | null | undefined;\n\n    /**\n     * End date for accrual bills generated <span class='property-internal'>Required</span>\n     */\n    accrualPeriodEndDate: Date | null ;\n\n    /**\n     * Earliest bill end date to begin accruing from (end dates become begin dates for accrued bills) <span class='property-internal'>Required</span>\n     */\n    accrualPeriodMinimumStartDate: Date | null ;\n\n    /**\n     * Billing period calculation method.  Valid values are \\\"bill midpoint\\\" and \\\"manual\\\". <span class='property-internal'>One of 'bill midpoint', 'manual'</span> <span class='property-internal'>Case sensitive</span> <span class='property-internal'>Required</span>\n     */\n    billingPeriodCalculationMethod: string | null ;\n\n    /**\n     * Fixed billing period for accrual bills generated when billing period calculation method is manual. <span class='property-internal'>Required when BillingPeriodCalculationMethod is set to manual, case sensitive.</span> <span class='property-internal'>Must be between 190001 and 209912</span>\n     */\n    manualBillingPeriod: number | null | undefined;\n\n    /**\n     * Account period calculation method.  Valid values are \\\"blank\\\", \\\"billing period\\\" and \\\"manual\\\". <span class='property-internal'>One of 'blank', 'billing period', 'manual'</span> <span class='property-internal'>Case sensitive</span> <span class='property-internal'>Required</span>\n     */\n    accountPeriodCalculationMethod: string | null ;\n\n    /**\n     * Fixed account period for accrual bills generated when account period calculation method is manual. <span class='property-internal'>Required when AccountPeriodCalculationMethod is set to manual, case sensitive.</span> <span class='property-internal'>Must be between 190001 and 209913</span>\n     */\n    manualAccountPeriod: number | null | undefined;\n\n    /**\n     * Generate accrual bills in test mode? Test mode bills are created as voided bills. <span class='property-internal'>Required</span>\n     */\n    testMode: boolean | null ;\n\n    /**\n     * Optional percentage for cost adjustment. It can be positive or negative.\n     */\n    percentCostAdjustment: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class AccrualSettings {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    run: boolean | null | undefined;\n\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class AccrualSettingsClassPermission {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    run: boolean | null | undefined;\n\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class AccrualSettingsResponse {\n    /**\n     * Accrual method to employ. Valid values are:    simple      - cost per day from the most recent bill   use history - unit cost based on historical bills                 (if AUC safety net used, use the most recent bill if the unit cost is within the safety net percentage,                 otherwise use a historical average of the last three years from the same period),                 or average cost per day if no usage\n     */\n    accrualMethod: string | null | undefined;\n\n    /**\n     * Use an average unit cost safety net (apply to most recent bill unit cost)\n     */\n    aucSafetyNet: boolean | null | undefined;\n\n    /**\n     * Average unit cost safety net percentage\n     */\n    aucSafetyNetPercentage: number | null | undefined;\n\n    /**\n     * Default filter to use when selecting most recent bills. Valid value are:    non-void       - select any non-void bill   approved       - select only approved bills   apexported     - select AP exported bills   non-exporthold - select bills not held from AP export\n     */\n    accrualBillFilter: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ActionableBillCounts {\n    /**\n     * Count of bills Held from Export\n     */\n    exportHoldCount: number | null | undefined;\n\n    /**\n     * Count of bills Waiting for Export to AP\n     */\n    apExportCount: number | null | undefined;\n\n    /**\n     * Count of bills Waiting for Export to GL\n     */\n    glExportCount: number | null | undefined;\n\n    /**\n     * Count of bills which are Not Approved\n     */\n    approvalCount: number | null | undefined;\n\n    /**\n     * Count of bills with unresolved flags\n     */\n    auditProblemCount: number | null | undefined;\n\n    /**\n     * Count of bills created in the last seven days\n     */\n    createdLastSevenDaysCount: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class Activity {\n    /**\n     * \n     */\n    id: number | null | undefined;\n\n    /**\n     * \n     */\n    reason: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { MonthlyTimeSeriesValue } from './monthlyTimeSeriesValue';\nimport { PeriodRange } from './periodRange';\nimport { TimeSeriesEntity } from './timeSeriesEntity';\n\n\nexport class ActualVsBudgetResponse {\n    budgetPeriodRange: PeriodRange | null | undefined;\n\n    /**\n     * \n     */\n    totals: Array<MonthlyTimeSeriesValue> | null | undefined;\n\n    /**\n     * \n     */\n    entities: Array<TimeSeriesEntity> | null | undefined;\n\n    /**\n     * \n     */\n    values: Array<MonthlyTimeSeriesValue> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class AddressChild {\n    /**\n     * The address type identifier\n     */\n    addressTypeId: number | null | undefined;\n\n    /**\n     * Remit To field is the name of the person or company who should receive the payment. It's required for bill pay customers. <span class='property-internal'>Must be between 0 and 100 characters</span>\n     */\n    remitTo: string | null | undefined;\n\n    /**\n     * The line 1 of the address <span class='property-internal'>Must be between 0 and 100 characters</span>\n     */\n    line1: string | null | undefined;\n\n    /**\n     * The line 2 of the address <span class='property-internal'>Must be between 0 and 100 characters</span>\n     */\n    line2: string | null | undefined;\n\n    /**\n     * The line 3 of the address <span class='property-internal'>Must be between 0 and 100 characters</span>\n     */\n    line3: string | null | undefined;\n\n    /**\n     * The city of the place <span class='property-internal'>Must be between 0 and 100 characters</span>\n     */\n    city: string | null | undefined;\n\n    /**\n     * The state of the place <span class='property-internal'>Must be between 0 and 100 characters</span>\n     */\n    state: string | null | undefined;\n\n    /**\n     * The country of the place <span class='property-internal'>Must be between 0 and 64 characters</span>\n     */\n    country: string | null | undefined;\n\n    /**\n     * The postal code of the place <span class='property-internal'>Must be between 0 and 32 characters</span>\n     */\n    postalCode: string | null | undefined;\n\n    /**\n     * The latitude of the place Required when the country is not United States or Canada <span class='property-internal'>Must be between -90 and 90</span> <span class='property-internal'>Required when Longitude is set</span>\n     */\n    latitude: number | null | undefined;\n\n    /**\n     * The longitude of the place Required when the country is not United States or Canada <span class='property-internal'>Must be between -180 and 180</span> <span class='property-internal'>Required when Latitude is set</span>\n     */\n    longitude: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class AddressChildBase {\n    /**\n     * Remit To field is the name of the person or company who should receive the payment. It's required for bill pay customers. <span class='property-internal'>Must be between 0 and 100 characters</span>\n     */\n    remitTo: string | null | undefined;\n\n    /**\n     * The line 1 of the address <span class='property-internal'>Must be between 0 and 100 characters</span>\n     */\n    line1: string | null | undefined;\n\n    /**\n     * The line 2 of the address <span class='property-internal'>Must be between 0 and 100 characters</span>\n     */\n    line2: string | null | undefined;\n\n    /**\n     * The line 3 of the address <span class='property-internal'>Must be between 0 and 100 characters</span>\n     */\n    line3: string | null | undefined;\n\n    /**\n     * The city of the place <span class='property-internal'>Must be between 0 and 100 characters</span>\n     */\n    city: string | null | undefined;\n\n    /**\n     * The state of the place <span class='property-internal'>Must be between 0 and 100 characters</span>\n     */\n    state: string | null | undefined;\n\n    /**\n     * The country of the place <span class='property-internal'>Must be between 0 and 64 characters</span>\n     */\n    country: string | null | undefined;\n\n    /**\n     * The postal code of the place <span class='property-internal'>Must be between 0 and 32 characters</span>\n     */\n    postalCode: string | null | undefined;\n\n    /**\n     * The latitude of the place Required when the country is not United States or Canada <span class='property-internal'>Must be between -90 and 90</span> <span class='property-internal'>Required when Longitude is set</span>\n     */\n    latitude: number | null | undefined;\n\n    /**\n     * The longitude of the place Required when the country is not United States or Canada <span class='property-internal'>Must be between -180 and 180</span> <span class='property-internal'>Required when Latitude is set</span>\n     */\n    longitude: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class AddressLookup {\n    /**\n     * \n     */\n    addressTypeId: number | null | undefined;\n\n    /**\n     * \n     */\n    line1: string | null | undefined;\n\n    /**\n     * \n     */\n    line2: string | null | undefined;\n\n    /**\n     * \n     */\n    line3: string | null | undefined;\n\n    /**\n     * \n     */\n    city: string | null | undefined;\n\n    /**\n     * \n     */\n    state: string | null | undefined;\n\n    /**\n     * \n     */\n    country: string | null | undefined;\n\n    /**\n     * \n     */\n    postalCode: string | null | undefined;\n\n    /**\n     * \n     */\n    latitude: number | null | undefined;\n\n    /**\n     * \n     */\n    longitude: number | null | undefined;\n\n    /**\n     * \n     */\n    uniqueLocationIdentifier: string | null | undefined;\n\n    /**\n     * \n     */\n    locationProperties: { [key: string]: any; } | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class AdjustedCostTypeResponse {\n    /**\n     * Adjusted Cost Type identifier\n     */\n    adjustedCostTypeId: number | null | undefined;\n\n    /**\n     * Adjusted Cost Type code\n     */\n    adjustedCostTypeCode: string | null | undefined;\n\n    /**\n     * Adjusted Cost Type name\n     */\n    adjustedCostTypeInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class AdjustmentBaseMethodChild {\n    /**\n     * Special adjustment method identifier\n     */\n    specialAdjustmentMethodId: number | null | undefined;\n\n    /**\n     * Special adjustment method description\n     */\n    label: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class AdminSettingsRequest {\n    /**\n     * The setting field <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 32 characters</span>\n     */\n    fieldName: string | null ;\n\n    /**\n     * The setting value <span class='property-internal'>Must be between 0 and 255 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    value: string | null | undefined;\n\n    /**\n     * The setting's data type identifier. Possible value include 1 (boolean), 2 (integer), 3 (string), 4 (double), 6 (date) <span class='property-internal'>Required</span> <span class='property-internal'>One of '1', '2', '3', '4', '6'</span> <span class='property-internal'>Case sensitive</span>\n     */\n    dataTypeId: number | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { DataTypeResponse } from './dataTypeResponse';\n\n\nexport class AdminSettingsResponse {\n    /**\n     * The setting field\n     */\n    fieldName: string | null | undefined;\n\n    /**\n     * The setting value\n     */\n    value: string | null | undefined;\n\n    dataType: DataTypeResponse | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { GHGPerformanceComparison } from './gHGPerformanceComparison';\nimport { PeriodRangeComparison } from './periodRangeComparison';\n\n\nexport class AggregatedComparisonResponseGHGPerformanceComparison {\n    periodRange: PeriodRangeComparison | null | undefined;\n\n    total: GHGPerformanceComparison | null | undefined;\n\n    /**\n     * The data details\n     */\n    dataDetails: Array<GHGPerformanceComparison> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { ItemRankResponse } from './itemRankResponse';\nimport { PeriodRange } from './periodRange';\n\n\nexport class AggregatedItemRankResponse {\n    period: PeriodRange | null | undefined;\n\n    /**\n     * The display unit of the values\n     */\n    displayUnit: string | null | undefined;\n\n    /**\n     * The data details\n     */\n    dataDetails: Array<ItemRankResponse> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { MonthlyCAPTrend } from './monthlyCAPTrend';\nimport { PeriodRange } from './periodRange';\n\n\nexport class AggregatedMonthlyCAPTrendResponse {\n    fiscalPeriodRange: PeriodRange | null | undefined;\n\n    /**\n     * The data details\n     */\n    dataDetails: Array<MonthlyCAPTrend> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { GHGBuildingRank } from './gHGBuildingRank';\nimport { PeriodRange } from './periodRange';\n\n\nexport class AggregatedResponseGHGBuildingRank {\n    period: PeriodRange | null | undefined;\n\n    total: GHGBuildingRank | null | undefined;\n\n    /**\n     * The data details\n     */\n    dataDetails: Array<GHGBuildingRank> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { ItemRankWithUnitResponse } from './itemRankWithUnitResponse';\nimport { PeriodRange } from './periodRange';\n\n\nexport class AggregatedResponseItemRankWithUnitResponse {\n    period: PeriodRange | null | undefined;\n\n    total: ItemRankWithUnitResponse | null | undefined;\n\n    /**\n     * The data details\n     */\n    dataDetails: Array<ItemRankWithUnitResponse> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class AllInstalledReports {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class AllInstalledReportsClassPermission {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ApiKeyCreateRequest {\n    /**\n     * The name of the API key <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 60 characters</span>\n     */\n    apiKeyName: string | null ;\n\n    /**\n     * A description for the API key\n     */\n    apiKeyDescription: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { UserChild } from './userChild';\n\n\nexport class ApiKeyCreateResponse {\n    /**\n     * The API key. This value cannot be retrieved again after it is created.\n     */\n    apiKey: string | null | undefined;\n\n    /**\n     * The identifier of the API key\n     */\n    apiKeyId: number | null | undefined;\n\n    /**\n     * The name of the API key\n     */\n    apiKeyName: string | null | undefined;\n\n    /**\n     * A description of the API key\n     */\n    apiKeyDescription: string | null | undefined;\n\n    createdBy: UserChild | null | undefined;\n\n    /**\n     * The API key creation date\n     */\n    createdDate: Date | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ApiKeyEditRequest {\n    /**\n     * The name of the API key <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 60 characters</span>\n     */\n    apiKeyName: string | null ;\n\n    /**\n     * A description for the API key <span class='property-internal'>Required (defined)</span>\n     */\n    apiKeyDescription: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { UserChild } from './userChild';\n\n\nexport class ApiKeyResponse {\n    /**\n     * The identifier of the API key\n     */\n    apiKeyId: number | null | undefined;\n\n    /**\n     * The name of the API key\n     */\n    apiKeyName: string | null | undefined;\n\n    /**\n     * A description of the API key\n     */\n    apiKeyDescription: string | null | undefined;\n\n    createdBy: UserChild | null | undefined;\n\n    /**\n     * The API key creation date\n     */\n    createdDate: Date | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ApiUser {\n    /**\n     * \n     */\n    userName: string | null | undefined;\n\n    /**\n     * \n     */\n    fullName: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class ApplicationSettings {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ApplicationSettingsClassPermission {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\n/**\n * Bill approval settings\n */\nexport class ApprovalWorkflowChild {\n    /**\n     * Whether or not Approval Mode is enabled\n     */\n    approvalModeEnabled: boolean | null | undefined;\n\n    /**\n     * Whether or not edit / delete should be confirmed\n     */\n    confirmEditDelete: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\n/**\n * Bill approval settings\n */\nexport class ApprovalWorkflowRequestChild {\n    /**\n     * Whether or not edit / delete should be confirmed <span class='property-internal'>Required</span>\n     */\n    confirmEditDelete: boolean | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ApprovalWorkflowSettings {\n    /**\n     * \n     */\n    approvalModeEnabled: boolean | null | undefined;\n\n    /**\n     * \n     */\n    confirmEditDelete: boolean | null | undefined;\n\n    /**\n     * \n     */\n    maximumApprovalAmount: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class ApproveBills {\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ApproveBillsClassPermission {\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { ArcadiaAccountCustomData } from './arcadiaAccountCustomData';\nimport { ArcadiaProvider } from './arcadiaProvider';\n\n\nexport class ArcadiaAccount {\n    /**\n     *  <span class='property-internal'>Required</span>\n     */\n    accountNumber: string | null ;\n\n    /**\n     * \n     */\n    billingCycle: string | null | undefined;\n\n    /**\n     * \n     */\n    correlationIds: Array<string> | null | undefined;\n\n    /**\n     * \n     */\n    createdAt: Date | null | undefined;\n\n    /**\n     * \n     */\n    createdBy: string | null | undefined;\n\n    customData: ArcadiaAccountCustomData | null ;\n\n    /**\n     * \n     */\n    firstExtractedAt: Date | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Required</span>\n     */\n    id: string | null ;\n\n    /**\n     * \n     */\n    isAccessible: boolean | null | undefined;\n\n    /**\n     * \n     */\n    isCustomerActionRequired: boolean | null | undefined;\n\n    /**\n     * \n     */\n    isHistoryFulfilled: boolean | null | undefined;\n\n    /**\n     * \n     */\n    isIntervalsThirdPartyPortalAccount: boolean | null | undefined;\n\n    /**\n     * \n     */\n    isStatementsProductActive: boolean | null | undefined;\n\n    /**\n     * \n     */\n    lastModifiedAt: Date | null | undefined;\n\n    /**\n     * \n     */\n    lastModifiedBy: string | null | undefined;\n\n    /**\n     * \n     */\n    lastSuccessfulStatementExtractionAt: Date | null | undefined;\n\n    /**\n     * \n     */\n    latestNewStatementAt: Date | null | undefined;\n\n    /**\n     * \n     */\n    latestStatementDate: string | null | undefined;\n\n    /**\n     * \n     */\n    nextExpectedPostDate: string | null | undefined;\n\n    /**\n     * \n     */\n    normalizedAccountNumber: string | null | undefined;\n\n    /**\n     * \n     */\n    prepaid: boolean | null | undefined;\n\n    provider: ArcadiaProvider | null ;\n\n    /**\n     * \n     */\n    providerClassification: string | null | undefined;\n\n    /**\n     * \n     */\n    siteNames: Array<string> | null | undefined;\n\n    /**\n     * \n     */\n    status: string | null | undefined;\n\n    /**\n     * \n     */\n    statusDetail: string | null | undefined;\n\n    /**\n     * \n     */\n    summaryAccountId: string | null | undefined;\n\n    /**\n     * \n     */\n    summaryAccountNumber: string | null | undefined;\n\n    /**\n     * \n     */\n    type: string | null | undefined;\n\n    /**\n     * \n     */\n    voidedAt: Date | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ArcadiaAccountCustomData {\n    /**\n     * \n     */\n    processBillsAfter: string | null | undefined;\n\n    /**\n     * \n     */\n    billCAPtureClientCode: string | null | undefined;\n\n    /**\n     * \n     */\n    billCAPtureNotes: string | null | undefined;\n\n    /**\n     * \n     */\n    billCaptureEnabled: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ArcadiaProvider {\n    /**\n     * \n     */\n    country: string | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Required</span>\n     */\n    id: string | null ;\n\n    /**\n     * \n     */\n    intervalServiceTypes: Array<string> | null | undefined;\n\n    /**\n     * \n     */\n    isIntervalDataSupported: boolean | null | undefined;\n\n    /**\n     * \n     */\n    isIntervalFileUploadSupported: boolean | null | undefined;\n\n    /**\n     * \n     */\n    isRealTimeCredentialValidationSupported: boolean | null | undefined;\n\n    /**\n     * \n     */\n    name: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { HighPrecisionTimeSeriesValue } from './highPrecisionTimeSeriesValue';\nimport { TimeSeriesSummary } from './timeSeriesSummary';\n\n\nexport class AreaNormalizedResponse {\n    /**\n     * \n     */\n    values: Array<HighPrecisionTimeSeriesValue> | null | undefined;\n\n    summary: TimeSeriesSummary | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class AssignVersionsToStep {\n    /**\n     * List of calculated bill or bill split version IDs to assign to a chargeback workflow step <span class='property-internal'>Required (defined)</span>\n     */\n    calculateBillVersionIds: Array<number> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class AucRangeRequest {\n    /**\n     * The unique identifier for the commodity <span class='property-internal'>Required (defined)</span>\n     */\n    commodityId: number | null | undefined;\n\n    /**\n     * When the current bill's average unit cost is LOWER than this multiplier x the baseline bill's average unit cost, then the cost avoidance processor will use the average unit cost from the baseline bill instead of the current bill <span class='property-internal'>Must be between 0.1 and 20.0</span> <span class='property-internal'>Required (defined)</span>\n     */\n    lowerLimitMultiplier: number | null | undefined;\n\n    /**\n     * When the current bill's average unit cost is HIGHER than this multiplier x the baseline bill's average unit cost, then the cost avoidance processor will use the average unit cost from the baseline bill instead of the current bill <span class='property-internal'>Must be greater than LowerLimitMultiplier</span> <span class='property-internal'>Must be between 0.1 and 20.0</span> <span class='property-internal'>Required (defined)</span>\n     */\n    upperLimitMultiplier: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CommodityChild } from './commodityChild';\n\n\nexport class AucRangeResponse {\n    /**\n     * Unique identifier for the commodity's average unit cost range\n     */\n    commodityCapId: number | null | undefined;\n\n    commodity: CommodityChild | null | undefined;\n\n    /**\n     * When the current bill's average unit cost is LOWER than this multiplier x the baseline bill's average unit cost, then the cost avoidance processor will use the average unit cost from the baseline bill instead of the current bill\n     */\n    lowerLimitMultiplier: number | null | undefined;\n\n    /**\n     * When the current bill's average unit cost is HIGHER than this multiplier x the baseline bill's average unit cost, then the cost avoidance processor will use the average unit cost from the baseline bill instead of the current bill\n     */\n    upperLimitMultiplier: number | null | undefined;\n\n    /**\n     * Indicates whether or not this commodity is used; i.e. there are meters that have been created with this commodity which are included in cost avoidance\n     */\n    isUsed: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class AuditSettingRequest {\n    /**\n     * The status of the audit setting <span class='property-internal'>One of 'Check', 'Hold', 'Skip'</span> <span class='property-internal'>Required (defined)</span>\n     */\n    settingStatus: string | null | undefined;\n\n    /**\n     * Minimum Bill/Meter Cost.  This audit will run only when the cost meets the specified minimum cost <span class='property-internal'>Required (defined)</span>\n     */\n    minimumCost: number | null | undefined;\n\n    /**\n     * List of Assignees.  Ids of the users the flag should get assigned to when the audit fails. <span class='property-internal'>Required (defined)</span>\n     */\n    assignees: Array<number> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { UserChild } from './userChild';\n\n\nexport class AuditSettingResponse {\n    /**\n     * The status of the audit setting - Possible values Check, Hold, Skip\n     */\n    settingStatus: string | null | undefined;\n\n    /**\n     * The setting code\n     */\n    settingCode: string | null | undefined;\n\n    /**\n     * A description of the setting\n     */\n    settingDescription: string | null | undefined;\n\n    /**\n     * Minimum Bill/Meter Cost.  This audit wwill run only when the cost meets the specified minimum cost\n     */\n    minimumCost: number | null | undefined;\n\n    /**\n     * List of Assignees.  UserChildDTO representing the users the flag should get assigned to when the audit fails.\n     */\n    assignees: Array<UserChild> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AbnormalBillCostWithOutlierAnalysisSettingRequest } from './abnormalBillCostWithOutlierAnalysisSettingRequest';\nimport { AbnormalBillDemandWithOutlierAnalysisSettingRequest } from './abnormalBillDemandWithOutlierAnalysisSettingRequest';\nimport { AbnormalBillUseWithOutlierAnalysisSettingRequest } from './abnormalBillUseWithOutlierAnalysisSettingRequest';\nimport { AuditSettingRequest } from './auditSettingRequest';\nimport { BillContainsLineItemDescriptionsSettingRequest } from './billContainsLineItemDescriptionsSettingRequest';\nimport { BillContainsLineItemTypesSettingRequest } from './billContainsLineItemTypesSettingRequest';\nimport { BillSignificantlyShorterOrLongerThanPreviousSettingRequest } from './billSignificantlyShorterOrLongerThanPreviousSettingRequest';\nimport { CommoditySkipAuditSettingRequest } from './commoditySkipAuditSettingRequest';\nimport { DueDateTooLongAfterBillEndSettingRequest } from './dueDateTooLongAfterBillEndSettingRequest';\nimport { StatementDateTooLongAfterBillEndSettingRequest } from './statementDateTooLongAfterBillEndSettingRequest';\nimport { TooManyConsecutiveEstimatedBillsSettingRequest } from './tooManyConsecutiveEstimatedBillsSettingRequest';\nimport { TotalBillCostDoesNotMatchLineItemTypesSettingRequest } from './totalBillCostDoesNotMatchLineItemTypesSettingRequest';\n\n\nexport class AuditSettingsRequest {\n    currencyUnitAnalysis: AuditSettingRequest | null ;\n\n    multipleUseUnitAnalysis: AuditSettingRequest | null ;\n\n    billUseUnitDifferentFromMeterAnalysis: AuditSettingRequest | null ;\n\n    billContainsLineItemDescriptions: BillContainsLineItemDescriptionsSettingRequest | null ;\n\n    billContainsLineItemTypes: BillContainsLineItemTypesSettingRequest | null ;\n\n    totalBillCostDoesNotMatchLineItemTypes: TotalBillCostDoesNotMatchLineItemTypesSettingRequest | null ;\n\n    billingPeriodOutsideStartEndDates: AuditSettingRequest | null ;\n\n    billOverlapsWithOtherAccountBill: CommoditySkipAuditSettingRequest | null ;\n\n    gapBetweenBillAndPreviousBillOnAccount: CommoditySkipAuditSettingRequest | null ;\n\n    billEndsInFuture: AuditSettingRequest | null ;\n\n    accountHasMultipleBillsInBillingPeriod: CommoditySkipAuditSettingRequest | null ;\n\n    statementDateBeforeEndDate: AuditSettingRequest | null ;\n\n    dueDateBeforeEndDate: AuditSettingRequest | null ;\n\n    billSignificantlyShorterOrLongerThanPrevious: BillSignificantlyShorterOrLongerThanPreviousSettingRequest | null ;\n\n    tooManyConsecutiveEstimatedBills: TooManyConsecutiveEstimatedBillsSettingRequest | null ;\n\n    dueDateTooLongAfterBillEnd: DueDateTooLongAfterBillEndSettingRequest | null ;\n\n    statementDateTooLongAfterBillEnd: StatementDateTooLongAfterBillEndSettingRequest | null ;\n\n    invoiceNumberIsRepeatedOnAccount: AuditSettingRequest | null ;\n\n    likelyDuplicateBillOnAccount: AuditSettingRequest | null ;\n\n    totalMeterCostIsPercentageHigherThanPastYear: AuditSettingRequest | null ;\n\n    totalMeterUseIsPercentageHigherThanPastYear: AuditSettingRequest | null ;\n\n    serialNumberDoesNotMatchImportFile: AuditSettingRequest | null ;\n\n    rateCodeDoesNotMatchImportFile: AuditSettingRequest | null ;\n\n    importFileStartDateAdjustedToPreventGaps: AuditSettingRequest | null ;\n\n    accountAlertExistsOnAccountInImportFile: AuditSettingRequest | null ;\n\n    abnormalBillCostWithOutlierAnalysis: AbnormalBillCostWithOutlierAnalysisSettingRequest | null ;\n\n    abnormalBillUseWithOutlierAnalysis: AbnormalBillUseWithOutlierAnalysisSettingRequest | null ;\n\n    abnormalBillDemandWithOutlierAnalysis: AbnormalBillDemandWithOutlierAnalysisSettingRequest | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AbnormalBillCostWithOutlierAnalysisSettingResponse } from './abnormalBillCostWithOutlierAnalysisSettingResponse';\nimport { AbnormalBillDemandWithOutlierAnalysisSettingResponse } from './abnormalBillDemandWithOutlierAnalysisSettingResponse';\nimport { AbnormalBillUseWithOutlierAnalysisSettingResponse } from './abnormalBillUseWithOutlierAnalysisSettingResponse';\nimport { AuditSettingResponse } from './auditSettingResponse';\nimport { BillContainsLineItemDescriptionsSettingResponse } from './billContainsLineItemDescriptionsSettingResponse';\nimport { BillContainsLineItemTypesSettingResponse } from './billContainsLineItemTypesSettingResponse';\nimport { BillSignificantlyShorterOrLongerThanPreviousSettingResponse } from './billSignificantlyShorterOrLongerThanPreviousSettingResponse';\nimport { CommoditySkipAuditSettingResponse } from './commoditySkipAuditSettingResponse';\nimport { DueDateTooLongAfterBillEndSettingResponse } from './dueDateTooLongAfterBillEndSettingResponse';\nimport { StatementDateTooLongAfterBillEndSettingResponse } from './statementDateTooLongAfterBillEndSettingResponse';\nimport { TooManyConsecutiveEstimatedBillsSettingResponse } from './tooManyConsecutiveEstimatedBillsSettingResponse';\nimport { TotalBillCostDoesNotMatchLineItemTypesSettingResponse } from './totalBillCostDoesNotMatchLineItemTypesSettingResponse';\n\n\nexport class AuditSettingsResponse {\n    billContainsLineItemDescriptions: BillContainsLineItemDescriptionsSettingResponse | null | undefined;\n\n    billContainsLineItemTypes: BillContainsLineItemTypesSettingResponse | null | undefined;\n\n    totalBillCostDoesNotMatchLineItemTypes: TotalBillCostDoesNotMatchLineItemTypesSettingResponse | null | undefined;\n\n    billingPeriodOutsideStartEndDates: AuditSettingResponse | null | undefined;\n\n    billOverlapsWithOtherAccountBill: CommoditySkipAuditSettingResponse | null | undefined;\n\n    gapBetweenBillAndPreviousBillOnAccount: CommoditySkipAuditSettingResponse | null | undefined;\n\n    billEndsInFuture: AuditSettingResponse | null | undefined;\n\n    accountHasMultipleBillsInBillingPeriod: CommoditySkipAuditSettingResponse | null | undefined;\n\n    statementDateBeforeEndDate: AuditSettingResponse | null | undefined;\n\n    dueDateBeforeEndDate: AuditSettingResponse | null | undefined;\n\n    billSignificantlyShorterOrLongerThanPrevious: BillSignificantlyShorterOrLongerThanPreviousSettingResponse | null | undefined;\n\n    tooManyConsecutiveEstimatedBills: TooManyConsecutiveEstimatedBillsSettingResponse | null | undefined;\n\n    dueDateTooLongAfterBillEnd: DueDateTooLongAfterBillEndSettingResponse | null | undefined;\n\n    statementDateTooLongAfterBillEnd: StatementDateTooLongAfterBillEndSettingResponse | null | undefined;\n\n    invoiceNumberIsRepeatedOnAccount: AuditSettingResponse | null | undefined;\n\n    likelyDuplicateBillOnAccount: AuditSettingResponse | null | undefined;\n\n    totalMeterCostIsPercentageHigherThanPastYear: AuditSettingResponse | null | undefined;\n\n    totalMeterUseIsPercentageHigherThanPastYear: AuditSettingResponse | null | undefined;\n\n    serialNumberDoesNotMatchImportFile: AuditSettingResponse | null | undefined;\n\n    rateCodeDoesNotMatchImportFile: AuditSettingResponse | null | undefined;\n\n    importFileStartDateAdjustedToPreventGaps: AuditSettingResponse | null | undefined;\n\n    accountAlertExistsOnAccountInImportFile: AuditSettingResponse | null | undefined;\n\n    abnormalBillCostWithOutlierAnalysis: AbnormalBillCostWithOutlierAnalysisSettingResponse | null | undefined;\n\n    abnormalBillUseWithOutlierAnalysis: AbnormalBillUseWithOutlierAnalysisSettingResponse | null | undefined;\n\n    abnormalBillDemandWithOutlierAnalysis: AbnormalBillDemandWithOutlierAnalysisSettingResponse | null | undefined;\n\n    currencyUnitAnalysis: AuditSettingResponse | null | undefined;\n\n    multipleUseUnitAnalysis: AuditSettingResponse | null | undefined;\n\n    billUseUnitDifferentFromMeterAnalysis: AuditSettingResponse | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class BaselineEngine {\n    /**\n     * \n     */\n    run: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BaselineEngineClassPermission {\n    /**\n     * \n     */\n    run: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BaselineLog {\n    /**\n     * The status of baseline processing\n     */\n    status: string | null | undefined;\n\n    /**\n     * Number of meters successfully processed\n     */\n    successCount: number | null | undefined;\n\n    /**\n     * Number of meters processed with warning\n     */\n    warningCount: number | null | undefined;\n\n    /**\n     * Number of meters processed with errors\n     */\n    errorCount: number | null | undefined;\n\n    /**\n     * Number of meters to process\n     */\n    numberOfMeters: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { BaselineProcessorRequestBaselineBill } from './baselineProcessorRequestBaselineBill';\n\n\nexport class BaselineProcessorRequest {\n    /**\n     * Indicates if the meter will be included in savings calculations\n     */\n    includeInCAP: boolean | null | undefined;\n\n    /**\n     * Indicates if floor area adjustments should be made\n     */\n    adjustArea: boolean | null | undefined;\n\n    /**\n     * The type of cost adjustment to perform. Possible values include 1 (current average unit cost) and 5 (net cost difference)\n     */\n    adjustedCostTypeId: number | null | undefined;\n\n    /**\n     * Indicates if winter weather adjustments should be made\n     */\n    adjustWinter: boolean | null | undefined;\n\n    /**\n     * Indicates if summer weather adjustments should be made\n     */\n    adjustSummer: boolean | null | undefined;\n\n    /**\n     * The number of months in the baseline.  Setting this to anything other than 12 will turn off weather adjustments irregardless of the settings in adjustWinter and adjustSummer\n     */\n    baselineMonths: number | null | undefined;\n\n    /**\n     * The baseline's start date\n     */\n    baselineStartDate: Date | null | undefined;\n\n    /**\n     * The savings period's start date\n     */\n    savingsStartDate: Date | null | undefined;\n\n    /**\n     * The cooling balance point\n     */\n    coolingTemp: number | null | undefined;\n\n    /**\n     * The heating balance point\n     */\n    heatingTemp: number | null | undefined;\n\n    /**\n     * Indicates if extended weather should be used. Extended weather uses additional months prior to the baseline start date to  determine weather sensitivity.\n     */\n    useExtendedWeather: boolean | null | undefined;\n\n    /**\n     * The start date of the extended weather. This should be 1, 2 or 3 years prior to the baseline start date. Extended weather uses additional months prior to the baseline start date to  determine weather sensitivity.\n     */\n    extendedWeatherStartDate: Date | null | undefined;\n\n    /**\n     * Indicates if each bill in the baseline should be included in the baseline regression\n     */\n    baselineBills: Array<BaselineProcessorRequestBaselineBill> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BaselineProcessorRequestBaselineBill {\n    /**\n     * The identifier of the baseline bill\n     */\n    billId: number | null | undefined;\n\n    /**\n     * Indicates if the bill should be included in the baseline regression\n     */\n    isExcluded: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AdjustedCostTypeResponse } from './adjustedCostTypeResponse';\nimport { BaselineProcessorResponseBaselineBill } from './baselineProcessorResponseBaselineBill';\nimport { UnitChild } from './unitChild';\n\n\nexport class BaselineProcessorResponse {\n    /**\n     * Indicates if the meter will be included in savings calculations\n     */\n    includeInCAP: boolean | null | undefined;\n\n    /**\n     * Indicates if floor area adjustments should be made\n     */\n    adjustArea: boolean | null | undefined;\n\n    adjustedCostType: AdjustedCostTypeResponse | null | undefined;\n\n    /**\n     * Indicates if winter weather adjustments should be made\n     */\n    adjustWinter: boolean | null | undefined;\n\n    /**\n     * Indicates if summer weather adjustments should be made\n     */\n    adjustSummer: boolean | null | undefined;\n\n    /**\n     * Number of months in the baseline Setting this to anything other than 12 will turn off weather adjustments irregardless of the settings in adjustWinter and adjustSummer\n     */\n    baselineMonths: number | null | undefined;\n\n    /**\n     * Baseline start date\n     */\n    baselineStartDate: Date | null | undefined;\n\n    /**\n     * Savings Period start date\n     */\n    savingsStartDate: Date | null | undefined;\n\n    /**\n     * Indicates if extended weather should be used. Extended weather uses additional months prior to the baseline start date to determine weather sensitivity.\n     */\n    useExtendedWeather: boolean | null | undefined;\n\n    /**\n     * Start Date of the extended weather. This should be 1, 2 or 3 years prior to the baseline start date. Extended weather uses additional months prior to the baseline start date to determine weather sensitivity.\n     */\n    extendedWeatherStartDate: Date | null | undefined;\n\n    /**\n     * Cooling balance point\n     */\n    coolingTemp: number | null | undefined;\n\n    /**\n     * Cooling intercept\n     */\n    coolingIntercept: number | null | undefined;\n\n    /**\n     * Cooling max Degree Days\n     */\n    coolingMaxDegreeDays: number | null | undefined;\n\n    /**\n     * Cooling max use\n     */\n    coolingMaxUse: number | null | undefined;\n\n    /**\n     * Cooling R2\n     */\n    coolingR2: number | null | undefined;\n\n    /**\n     * Adjusted Cooling R2\n     */\n    adjustedCoolingR2: number | null | undefined;\n\n    /**\n     * Cooling minimum R2\n     */\n    coolingMinR2: number | null | undefined;\n\n    /**\n     * Cooling calculated R2\n     */\n    coolingCalculatedR2: number | null | undefined;\n\n    /**\n     * Cooling slope\n     */\n    coolingSlope: number | null | undefined;\n\n    /**\n     * Cooling standard deviation\n     */\n    coolingStdDev: number | null | undefined;\n\n    /**\n     * Cooling CVRMSE\n     */\n    coolingCVRMSE: number | null | undefined;\n\n    /**\n     * Cooling NDB\n     */\n    coolingNDB: number | null | undefined;\n\n    /**\n     * Cooling standard error\n     */\n    coolingStandardError: number | null | undefined;\n\n    /**\n     * Cooling base T-stat\n     */\n    coolingBaseTStat: number | null | undefined;\n\n    /**\n     * Cooling weather T-stat\n     */\n    coolingWeatherTStat: number | null | undefined;\n\n    /**\n     * Cooling FSU\n     */\n    coolingFSU: number | null | undefined;\n\n    /**\n     * Heating balance point\n     */\n    heatingTemp: number | null | undefined;\n\n    /**\n     * Heating intercept\n     */\n    heatingIntercept: number | null | undefined;\n\n    /**\n     * Heating maximum Degree Days\n     */\n    heatingMaxDegreeDays: number | null | undefined;\n\n    /**\n     * Heating maximum use\n     */\n    heatingMaxUse: number | null | undefined;\n\n    /**\n     * Heating R2\n     */\n    heatingR2: number | null | undefined;\n\n    /**\n     * \n     */\n    adjustedHeatingR2: number | null | undefined;\n\n    /**\n     * Heating minimum R2\n     */\n    heatingMinR2: number | null | undefined;\n\n    /**\n     * Heating calculated R2\n     */\n    heatingCalculatedR2: number | null | undefined;\n\n    /**\n     * Heating slope\n     */\n    heatingSlope: number | null | undefined;\n\n    /**\n     * Heating standard deviation\n     */\n    heatingStdDev: number | null | undefined;\n\n    /**\n     * Heating CVRMSE\n     */\n    heatingCVRMSE: number | null | undefined;\n\n    /**\n     * Heating NDB\n     */\n    heatingNDB: number | null | undefined;\n\n    /**\n     * Heating standard error\n     */\n    heatingStandardError: number | null | undefined;\n\n    /**\n     * Heating base T-stat\n     */\n    heatingBaseTStat: number | null | undefined;\n\n    /**\n     * Heating weather T-stat\n     */\n    heatingWeatherTStat: number | null | undefined;\n\n    /**\n     * Heating FSU\n     */\n    heatingFSU: number | null | undefined;\n\n    nativeUseUnit: UnitChild | null | undefined;\n\n    /**\n     * Indicates whether or not each bill in the baseline should be included in the baseline regression\n     */\n    baselineBills: Array<BaselineProcessorResponseBaselineBill> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BaselineProcessorResponseBaselineBill {\n    /**\n     * Unique bill identifier\n     */\n    billId: number | null | undefined;\n\n    /**\n     * Average Cooling Degree Days\n     */\n    avgCoolingDegreeDays: number | null | undefined;\n\n    /**\n     * Average heating Degree Days\n     */\n    avgHeatingDegreeDays: number | null | undefined;\n\n    /**\n     * Bill start date\n     */\n    beginDate: Date | null | undefined;\n\n    /**\n     * Bill end date\n     */\n    endDate: Date | null | undefined;\n\n    /**\n     * Indicates whether or not the bill is excluded from the baseline regression\n     */\n    isExcluded: boolean | null | undefined;\n\n    /**\n     * Indicates whether or not the bill is an outlier\n     */\n    isOutlier: boolean | null | undefined;\n\n    /**\n     * Native use\n     */\n    nativeUse: number | null | undefined;\n\n    /**\n     * Number of days in the bill\n     */\n    days: number | null | undefined;\n\n    /**\n     * Calendar period name (e.g. Jan)\n     */\n    periodName: string | null | undefined;\n\n    /**\n     * Calendar period number\n     */\n    calendarPeriod: number | null | undefined;\n\n    /**\n     * Calendar year\n     */\n    calendarYear: number | null | undefined;\n\n    /**\n     * Fiscal period\n     */\n    fiscalPeriod: number | null | undefined;\n\n    /**\n     * Fiscal year\n     */\n    fiscalYear: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BatchChild {\n    /**\n     * The batch id.\n     */\n    batchId: number | null | undefined;\n\n    /**\n     * The batch code.\n     */\n    batchCode: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BatchCreate {\n    /**\n     * The batch code <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 255 characters</span>\n     */\n    batchCode: string | null ;\n\n    /**\n     * If user has other batches open, should they be closed?\n     */\n    closeExistingBatch: boolean | null | undefined;\n\n    /**\n     * Statement date for batch - will get applied as default to any bill added to this batch\n     */\n    statementDate: Date | null | undefined;\n\n    /**\n     * Due date for batch - will get applied as default to any bill added to this batch\n     */\n    dueDate: Date | null | undefined;\n\n    /**\n     * Next reading date for batch - will get applied as default to any bill added to this batch\n     */\n    nextReading: Date | null | undefined;\n\n    /**\n     * Control code for batch - will get applied as default to any bill added to this batch <span class='property-internal'>Must be between 0 and 255 characters</span>\n     */\n    controlCode: string | null | undefined;\n\n    /**\n     * Invoice number for batch - will get applied as default to any bill added to this batch <span class='property-internal'>Must be between 0 and 255 characters</span>\n     */\n    invoiceNumber: string | null | undefined;\n\n    /**\n     * Account period number for batch - will get applied as default to any bill added to this batch\n     */\n    accountPeriodNumber: number | null | undefined;\n\n    /**\n     * Accountperiod year for batch - will get applied as default to any bill added to this batch <span class='property-internal'>Must be between 1900 and 2099</span>\n     */\n    accountPeriodYear: number | null | undefined;\n\n    /**\n     * Note/comment for batch <span class='property-internal'>Must be between 0 and 255 characters</span>\n     */\n    note: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BatchEdit {\n    /**\n     * The batch code <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 255 characters</span>\n     */\n    batchCode: string | null ;\n\n    /**\n     * Note/comment for batch <span class='property-internal'>Must be between 0 and 255 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    note: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { SourceBatchLogResponse } from './sourceBatchLogResponse';\nimport { TargetBatchLogResponse } from './targetBatchLogResponse';\n\n\nexport class BatchLogResponse {\n    /**\n     * The batch identifier\n     */\n    batchId: number | null | undefined;\n\n    /**\n     * Logs of bills that were added to this batch from another batch.\n     */\n    billsAddedFromLogs: Array<TargetBatchLogResponse> | null | undefined;\n\n    /**\n     * Logs of bills that were moved from this batch to another batch.\n     */\n    billsMovedToLogs: Array<SourceBatchLogResponse> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { UserChild } from './userChild';\n\n\nexport class BatchResponse {\n    /**\n     * The batch identifier\n     */\n    batchId: number | null | undefined;\n\n    /**\n     * The batch code\n     */\n    batchCode: string | null | undefined;\n\n    /**\n     * Is the batch open\n     */\n    isOpen: boolean | null | undefined;\n\n    /**\n     * The status of the batch (open, pending, closed)\n     */\n    batchStatus: string | null | undefined;\n\n    /**\n     * The date when the batch was created\n     */\n    startDate: Date | null | undefined;\n\n    /**\n     * The date when the batch was closed\n     */\n    endDate: Date | null | undefined;\n\n    /**\n     * The number of bills in this batch\n     */\n    billCount: number | null | undefined;\n\n    /**\n     * The cost of  all bills in this batch\n     */\n    runningTotal: number | null | undefined;\n\n    /**\n     * Statement date batch setting\n     */\n    statementDate: string | null | undefined;\n\n    /**\n     * Due date batch setting\n     */\n    dueDate: string | null | undefined;\n\n    /**\n     * Next reading date batch setting\n     */\n    nextReading: string | null | undefined;\n\n    /**\n     * Control code batch setting\n     */\n    controlCode: string | null | undefined;\n\n    /**\n     * Invoice number batch setting\n     */\n    invoiceNumber: string | null | undefined;\n\n    /**\n     * Account period name batch setting\n     */\n    accountPeriodName: string | null | undefined;\n\n    /**\n     * Account period number batch setting\n     */\n    accountPeriodNumber: number | null | undefined;\n\n    /**\n     * Account period year batch setting\n     */\n    accountPeriodYear: number | null | undefined;\n\n    /**\n     * Note/comment for the batch\n     */\n    note: string | null | undefined;\n\n    createdBy: UserChild | null | undefined;\n\n    /**\n     * Number of unresolved flags on bills contained in this batch\n     */\n    flagCount: number | null | undefined;\n\n    /**\n     * Number of bills contained in this batch that are currently being analyzed\n     */\n    analyzingCount: number | null | undefined;\n\n    /**\n     * Denotes if the Batch has any imported bills associated with it\n     */\n    hasImportedBills: boolean | null | undefined;\n\n    /**\n     * Denotes if the Batch has any import task with Status = \\\"Completed with kickouts\\\"\n     */\n    hasImportsWithKickout: boolean | null | undefined;\n\n    /**\n     * Denotes if the Batch has any move log events associated with it\n     */\n    hasLogs: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BatchSettings {\n    /**\n     * needs to be one of - \\\"use existing batch\\\", \\\"new batch\\\", \\\"new self-contained batch\\\", \\\"use pending batch\\\", \\\"smart batch\\\" if \\\"use existing batch\\\" - we will use an existing open batch and leave it open.  Used with ExistingOpenBatchId property. if \\\"new batch\\\" - make a new batch. LeaveExistingBatchesOpen set to true will leave other batches open. If false or not provided, we close the open batch for this user. If more than one batch is open it fails. if \\\"new self-contained batch\\\" - make a new batch and add bills to it and close it. Any open batch will be left open if \\\"use pending batch\\\" - PendingBatchId is required.  We will use the pending batch and leave it pending if \\\"smart batch\\\" - NewBatchCode is required.  Uses NewBatchCode to determine which batch mode path it should follow. BatchMode is then modified so error message may reflect this new BatchMode. --- if newBatchCode already exists in the database and it is a closed batch, create a new batch with a GUID appended to the newBatchCode to make it unique.      Any open batch will be left open. BatchMode modified to \\\"new batch\\\" and LeaveExistingBatchesOpen set to true.     This scenario can occur if BC is in the middle of processing micro batches and a user closes the original batch that was being used by BC. --- if there is a open batch with the newBatchCode and it belongs to the current user, use it.  BatchMode modified to \\\"use existing batch\\\" --- if there is a open batch with the newBatchCode and it belongs to the another user, use it if the current user has Bills and Batches:Manage.Otherwise, error. BatchMode modified to \\\"use existing batch\\\" --- if no open batches, check if there is a pending batch with newBatchCode, if so use it and get bills imported into the pending batch. BatchMode modified to \\\"use pending batch\\\" --- if a batch with newBatchCode does not exist, create it and add bills to it, any open batch will be left open. BatchMode modified to \\\"new batch\\\" and LeaveExistingBatchesOpen set to true <span class='property-internal'>One of 'use existing batch', 'new batch', 'new self-contained batch', 'use pending batch', 'smart batch'</span>\n     */\n    batchMode: string | null | undefined;\n\n    /**\n     * optional - Only applies when BatchMode is \\\"new batch\\\". When true it will leave any existing batches open\n     */\n    leaveExistingBatchesOpen: boolean | null | undefined;\n\n    /**\n     * optional - ID of an existing open batch to use. Only applies when BatchMode is \\\"use existing batch\\\". If not provided, the current user must have exactly one open batch, otherwise an error occurs. Must reference an open batch belonging to the current user, or if the user has \\\"Bills and Batch: Manage\\\" permission, any user's open batch.\n     */\n    existingOpenBatchId: number | null | undefined;\n\n    /**\n     * Pending batchId to import the bills into. Only applies when BatchMode is \\\"use pending batch\\\". <span class='property-internal'>Required when BatchMode is set to use pending batch</span>\n     */\n    pendingBatchId: number | null | undefined;\n\n    /**\n     * required - if batch mode is \\\"smart batch\\\" optional for batch modes \\\"new batch\\\", \\\"new self-contained batch\\\" - if not provided, we will autocreate the batch code.  Ignored for all other batch modes <span class='property-internal'>Must be between 0 and 255 characters</span> <span class='property-internal'>Required when BatchMode is set to smart batch</span>\n     */\n    newBatchCode: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { BillHeaderWorkflowChild } from './billHeaderWorkflowChild';\n\n\n/**\n * Batch workflow settings\n */\nexport class BatchWorkflowChild {\n    dueDate: BillHeaderWorkflowChild | null ;\n\n    statementDate: BillHeaderWorkflowChild | null ;\n\n    invoiceNumber: BillHeaderWorkflowChild | null ;\n\n    controlCode: BillHeaderWorkflowChild | null ;\n\n    nextReading: BillHeaderWorkflowChild | null ;\n\n    accountPeriodName: BillHeaderWorkflowChild | null ;\n\n    accountPeriodYear: BillHeaderWorkflowChild | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { BillHeaderWorkflowChild } from './billHeaderWorkflowChild';\n\n\nexport class BatchWorkflowSettings {\n    /**\n     * \n     */\n    batchModeEnabled: boolean | null | undefined;\n\n    dueDate: BillHeaderWorkflowChild | null | undefined;\n\n    statementDate: BillHeaderWorkflowChild | null | undefined;\n\n    invoiceNumber: BillHeaderWorkflowChild | null | undefined;\n\n    controlCode: BillHeaderWorkflowChild | null | undefined;\n\n    nextReading: BillHeaderWorkflowChild | null | undefined;\n\n    accountPeriodName: BillHeaderWorkflowChild | null | undefined;\n\n    accountPeriodYear: BillHeaderWorkflowChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BenchmarkCategoryResponse {\n    /**\n     * Benchmark Category Id\n     */\n    benchmarkCategoryId: number | null | undefined;\n\n    /**\n     * Benchmark Category Info\n     */\n    benchmarkCategoryInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BenchmarkEdit {\n    /**\n     * benchmark category Id <span class='property-internal'>Required</span>\n     */\n    benchmarkCategoryId: number | null ;\n\n    /**\n     * benchmark name <span class='property-internal'>Required</span> <span class='property-internal'>Not one of Area, Day</span> <span class='property-internal'>Must be between 0 and 255 characters</span>\n     */\n    benchmarkInfo: string | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { BenchmarkEdit } from './benchmarkEdit';\n\n\nexport class BenchmarkSettingsEdit {\n    benchmark1: BenchmarkEdit | null | undefined;\n\n    benchmark2: BenchmarkEdit | null | undefined;\n\n    benchmark3: BenchmarkEdit | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { BenchmarkWithUsedCountResponse } from './benchmarkWithUsedCountResponse';\n\n\nexport class BenchmarkSettingsResponse {\n    benchmark1: BenchmarkWithUsedCountResponse | null | undefined;\n\n    benchmark2: BenchmarkWithUsedCountResponse | null | undefined;\n\n    benchmark3: BenchmarkWithUsedCountResponse | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BenchmarkValue {\n    /**\n     * Indicator for which benchmark factor <span class='property-internal'>Required (defined)</span>\n     */\n    benchmarkValueId: number | null | undefined;\n\n    /**\n     * Effective Date for the benchmark factor <span class='property-internal'>Required (defined)</span>\n     */\n    effectiveDate: Date | null | undefined;\n\n    /**\n     * End Date for the benchmark factor <span class='property-internal'>Required (defined)</span>\n     */\n    endDate: Date | null | undefined;\n\n    /**\n     * Value set for the benchmark factor <span class='property-internal'>Required (defined)</span>\n     */\n    value: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BenchmarkValueRequest {\n    /**\n     * The effective date for the benchmark <span class='property-internal'>Required</span> <span class='property-internal'>Must be first of the month</span> <span class='property-internal'>Required</span> <span class='property-internal'>Must be first of the month</span>\n     */\n    effectiveDate: Date | null ;\n\n    /**\n     * The benchmark value <span class='property-internal'>Required</span> <span class='property-info'>Max scale of 6</span> <span class='property-internal'>Must be between 0 and 1.7976931348623157E+308</span> <span class='property-internal'>Required</span> <span class='property-info'>Max scale of 6</span> <span class='property-internal'>Must be between 0 and 1.7976931348623157E+308</span>\n     */\n    value: number | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { BenchmarkCategoryResponse } from './benchmarkCategoryResponse';\nimport { BenchmarkValue } from './benchmarkValue';\n\n\nexport class BenchmarkValuesResponse {\n    /**\n     * List of benchmark values and their effective dates <span class='property-internal'>Required (defined)</span>\n     */\n    benchmarkValues: Array<BenchmarkValue> | null | undefined;\n\n    /**\n     * Indicator for which benchmark factor <span class='property-internal'>Required (defined)</span>\n     */\n    benchmarkIndicator: number | null | undefined;\n\n    /**\n     * benchmark info <span class='property-internal'>Required (defined)</span>\n     */\n    benchmarkInfo: string | null | undefined;\n\n    benchmarkCategory: BenchmarkCategoryResponse | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { BenchmarkCategoryResponse } from './benchmarkCategoryResponse';\n\n\nexport class BenchmarkWithUsedCountResponse {\n    /**\n     * Number of times benchmark is used\n     */\n    usedCount: number | null | undefined;\n\n    /**\n     * Indicator for which benchmark factor\n     */\n    benchmarkIndicator: number | null | undefined;\n\n    /**\n     * benchmark info\n     */\n    benchmarkInfo: string | null | undefined;\n\n    benchmarkCategory: BenchmarkCategoryResponse | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BillAccountBodyLineCreate {\n    /**\n     * The bodyline's special charge (SingleLine) id, if applicable\n     */\n    specialChargeId: number | null | undefined;\n\n    /**\n     * The bodyline's observation type <span class='property-internal'>Required</span>\n     */\n    observationTypeId: number | null ;\n\n    /**\n     * The bodyline's cost unit of measure for this <span class='property-internal'>Required when Cost is set</span>\n     */\n    costUnitId: number | null | undefined;\n\n    /**\n     * The cost attributed to the line item <span class='property-internal'>Required when CostUnitId is set</span>\n     */\n    cost: number | null | undefined;\n\n    /**\n     * The caption <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 100 characters</span>\n     */\n    caption: string | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BillAccountBodyLineEdit {\n    /**\n     * The bodyline's id for an existing bodyline <span class='property-internal'>Required (defined)</span>\n     */\n    bodyLineId: number | null | undefined;\n\n    /**\n     * The bodyline's special charge (SingleLine) id, if applicable <span class='property-internal'>Required (defined)</span>\n     */\n    specialChargeId: number | null | undefined;\n\n    /**\n     * The bodyline's observation type <span class='property-internal'>Required</span>\n     */\n    observationTypeId: number | null ;\n\n    /**\n     * The bodyline's cost unit of measure for this <span class='property-internal'>Required when Cost is set</span>\n     */\n    costUnitId: number | null | undefined;\n\n    /**\n     * The cost attributed to the line item <span class='property-internal'>Required when CostUnitId is set</span>\n     */\n    cost: number | null | undefined;\n\n    /**\n     * The caption <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 100 characters</span>\n     */\n    caption: string | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BillAccountChargeSplitMethodRequest {\n    /**\n     * During bill import a bill's account charges will be distributed to the account's meters either by \\\"Use\\\" or \\\"Cost\\\" null means the charges will not be distributed <span class='property-internal'>One of 'Use', 'Cost'</span> <span class='property-internal'>Required (defined)</span>\n     */\n    splitBillChargesMethod: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BillAccountChargeSplitMethodResponse {\n    /**\n     * During bill import a bill's account charges will be distributed to the account's meters either by \\\"Use\\\" or \\\"Cost\\\" null means the charges will not be distributed\n     */\n    splitBillChargesMethod: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CostCategoryResponse } from './costCategoryResponse';\n\n\nexport class BillAccountChargeSplitSettingResponse {\n    /**\n     * The account identifier Account properties will be null when the setting applies to all accounts for a vendor If there is a specific account defined this setting will override the vendor settings\n     */\n    accountId: number | null | undefined;\n\n    /**\n     * The account code\n     */\n    accountCode: string | null | undefined;\n\n    /**\n     * The account info\n     */\n    accountInfo: string | null | undefined;\n\n    /**\n     * The vendor identifier\n     */\n    vendorId: number | null | undefined;\n\n    /**\n     * The vendor code\n     */\n    vendorCode: string | null | undefined;\n\n    /**\n     * The vendor info\n     */\n    vendorInfo: string | null | undefined;\n\n    /**\n     * Split account charges with a bill line type assigned to the cost categories\n     */\n    costCategories: Array<CostCategoryResponse> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { BillAccountChargeSplitMethodResponse } from './billAccountChargeSplitMethodResponse';\nimport { BillAccountChargeSplitSettingResponse } from './billAccountChargeSplitSettingResponse';\n\n\nexport class BillAccountChargeSplitSettingsResponse {\n    billAccountChargeSplitMethod: BillAccountChargeSplitMethodResponse | null | undefined;\n\n    /**\n     * During bill import a bill's account charges will be distributed to the account's meters based on the account, vendor, and cost category\n     */\n    billAccountChargeSplitSettings: Array<BillAccountChargeSplitSettingResponse> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { UnitChild } from './unitChild';\n\n\nexport class BillAccountMeterChild {\n    /**\n     * The bill-account-meter's account id\n     */\n    accountId: number | null | undefined;\n\n    /**\n     * The bill-account-meter's meter id\n     */\n    meterId: number | null | undefined;\n\n    /**\n     * The bill-account-meter's native use\n     */\n    nativeUse: number | null | undefined;\n\n    nativeUseUnit: UnitChild | null | undefined;\n\n    /**\n     * The bill-account-meter's direct cost\n     */\n    directCost: number | null | undefined;\n\n    directCostUnit: UnitChild | null | undefined;\n\n    /**\n     * The bill-account-meter's native use unit cost\n     */\n    nativeUseUnitCost: number | null | undefined;\n\n    /**\n     * The bill-account-meter's native use per day\n     */\n    nativeUsePerDay: number | null | undefined;\n\n    /**\n     * The bill-account-meter's direct cost per day\n     */\n    directCostPerDay: number | null | undefined;\n\n    /**\n     * The bill-account-meter's native billed demand\n     */\n    nativeBilledDemand: number | null | undefined;\n\n    nativeBilledDemandUnit: UnitChild | null | undefined;\n\n    /**\n     * The bill-account-meter's native actual demand\n     */\n    nativeActualDemand: number | null | undefined;\n\n    nativeActualDemandUnit: UnitChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AccountChild } from './accountChild';\nimport { MeterChild } from './meterChild';\nimport { UnitChild } from './unitChild';\n\n\nexport class BillAccountMeterResponse {\n    /**\n     * Global use\n     */\n    globalUse: number | null | undefined;\n\n    /**\n     * Global use per day\n     */\n    globalUsePerDay: number | null | undefined;\n\n    globalUseUnit: UnitChild | null | undefined;\n\n    /**\n     * Native use\n     */\n    nativeUse: number | null | undefined;\n\n    /**\n     * Native use per day\n     */\n    nativeUsePerDay: number | null | undefined;\n\n    nativeUseUnit: UnitChild | null | undefined;\n\n    /**\n     * Native demand\n     */\n    nativeDemand: number | null | undefined;\n\n    nativeDemandUnit: UnitChild | null | undefined;\n\n    /**\n     * Native billed demand\n     */\n    nativeBilledDemand: number | null | undefined;\n\n    nativeBilledDemandUnit: UnitChild | null | undefined;\n\n    /**\n     * Native actual demand\n     */\n    nativeActualDemand: number | null | undefined;\n\n    nativeActualDemandUnit: UnitChild | null | undefined;\n\n    /**\n     * Common use\n     */\n    commonUse: number | null | undefined;\n\n    /**\n     * Common use per day\n     */\n    commonUsePerDay: number | null | undefined;\n\n    commonUseUnit: UnitChild | null | undefined;\n\n    /**\n     * Common demand\n     */\n    commonDemand: number | null | undefined;\n\n    commonDemandUnit: UnitChild | null | undefined;\n\n    /**\n     * Common billed demand\n     */\n    commonBilledDemand: number | null | undefined;\n\n    commonBilledDemandUnit: UnitChild | null | undefined;\n\n    /**\n     * Common actual demand\n     */\n    commonActualDemand: number | null | undefined;\n\n    commonActualDemandUnit: UnitChild | null | undefined;\n\n    /**\n     * Direct cost\n     */\n    directCost: number | null | undefined;\n\n    /**\n     * Direct cost per day\n     */\n    directCostPerDay: number | null | undefined;\n\n    /**\n     * Proportional cost\n     */\n    proportionalCost: number | null | undefined;\n\n    /**\n     * Proportional cost per day\n     */\n    proportionalCostPerDay: number | null | undefined;\n\n    costUnit: UnitChild | null | undefined;\n\n    /**\n     * The bill identifier\n     */\n    billId: number | null | undefined;\n\n    /**\n     * The bill's billing period\n     */\n    billingPeriod: number | null | undefined;\n\n    /**\n     * The bill's begin date\n     */\n    beginDate: Date | null | undefined;\n\n    /**\n     * The bill's end date\n     */\n    endDate: Date | null | undefined;\n\n    /**\n     * The number of days the bill covers\n     */\n    days: number | null | undefined;\n\n    account: AccountChild | null | undefined;\n\n    meter: MeterChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AccountChild } from './accountChild';\nimport { MeterChild } from './meterChild';\nimport { StatisticsResponse } from './statisticsResponse';\n\n\nexport class BillAccountMeterStatisticsResponse {\n    usePerDay: StatisticsResponse | null | undefined;\n\n    costPerDay: StatisticsResponse | null | undefined;\n\n    demandPerDay: StatisticsResponse | null | undefined;\n\n    /**\n     * The bill identifier\n     */\n    billId: number | null | undefined;\n\n    /**\n     * The bill's billing period\n     */\n    billingPeriod: number | null | undefined;\n\n    /**\n     * The bill's begin date\n     */\n    beginDate: Date | null | undefined;\n\n    /**\n     * The bill's end date\n     */\n    endDate: Date | null | undefined;\n\n    /**\n     * The number of days the bill covers\n     */\n    days: number | null | undefined;\n\n    account: AccountChild | null | undefined;\n\n    meter: MeterChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BillAccrualExclusionRequest {\n    /**\n     * List of bill IDs to exclude from accruals or include again <span class='property-internal'>Required</span>\n     */\n    billIds: Array<number> | null ;\n\n    /**\n     * Whether or not the bill ids should be excluded from accruals, or included again <span class='property-internal'>Required</span>\n     */\n    exclude: boolean | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BillActionApprove {\n    /**\n     *  <span class='property-internal'>Cannot be Empty</span> <span class='property-internal'>Required (defined)</span>\n     */\n    ids: Array<number> | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Required (defined)</span>\n     */\n    approve: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BillActionCustom {\n    /**\n     * The list of bill ids on which to perform the custom action <span class='property-internal'>Cannot be Empty</span> <span class='property-internal'>Required (defined)</span>\n     */\n    billIds: Array<number> | null | undefined;\n\n    /**\n     * The webhook identifier that represents the custom bill action <span class='property-internal'>Required</span>\n     */\n    webhookId: number | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BillActionDelete {\n    /**\n     *  <span class='property-internal'>Cannot be Empty</span>\n     */\n    ids: Array<number> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BillActionExportHold {\n    /**\n     *  <span class='property-internal'>Cannot be Empty</span> <span class='property-internal'>Required (defined)</span>\n     */\n    ids: Array<number> | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Required (defined)</span>\n     */\n    exportHold: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { BillHeaderUpdate } from './billHeaderUpdate';\n\n\nexport class BillActionHeaderUpdate {\n    /**\n     * Bill IDs whose headers are going to be updated <span class='property-internal'>Cannot be Empty</span> <span class='property-internal'>Required</span>\n     */\n    billIds: Array<number> | null ;\n\n    billHeader: BillHeaderUpdate | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BillActionHistoricalExport {\n    /**\n     *  <span class='property-internal'>Cannot be Empty</span>\n     */\n    ids: Array<number> | null | undefined;\n\n    /**\n     *  <span class='property-internal'>One of '', 'V', 'P', 'R'</span>\n     */\n    vpr: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BillActionMove {\n    /**\n     * Ids of bills to be moved <span class='property-internal'>Cannot be Empty</span> <span class='property-internal'>Required (defined)</span>\n     */\n    ids: Array<number> | null | undefined;\n\n    /**\n     * Destination Account Id <span class='property-internal'>Required (defined)</span>\n     */\n    accountId: number | null | undefined;\n\n    /**\n     * Destination AccountMeter Ids <span class='property-internal'>Required (defined)</span>\n     */\n    accountMeterIds: Array<number> | null | undefined;\n\n    /**\n     * Use Account General Ledger from destination account? <span class='property-internal'>Required (defined)</span>\n     */\n    updateAccountGLs: boolean | null | undefined;\n\n    /**\n     * Use Meter General Ledger from destination meter? <span class='property-internal'>Required (defined)</span>\n     */\n    updateMeterGLs: boolean | null | undefined;\n\n    /**\n     * If both the source and destination meter is linked to an emissions source and there are records generated from the bills being moved, update the scope category and GHG factor on those records to the destination meter defaults?  Defaults to true for GHG Lite users, otherwise false. <span class='property-internal'>Required (defined)</span>\n     */\n    updateRecordScopeAndFactor: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BillActionMoveList {\n    /**\n     * Destination Account Id <span class='property-internal'>Required (defined)</span>\n     */\n    accountId: number | null | undefined;\n\n    /**\n     * Destination AccountMeter Ids <span class='property-internal'>Required (defined)</span>\n     */\n    accountMeterIds: Array<number> | null | undefined;\n\n    /**\n     * Use Account General Ledger from destination account? <span class='property-internal'>Required (defined)</span>\n     */\n    updateAccountGLs: boolean | null | undefined;\n\n    /**\n     * Use Meter General Ledger from destination meter? <span class='property-internal'>Required (defined)</span>\n     */\n    updateMeterGLs: boolean | null | undefined;\n\n    /**\n     * If both the source and destination meter is linked to an emissions source and there are records generated from the bills being moved, update the scope category and GHG factor on those records to the destination meter defaults?  Defaults to true for GHG Lite users, otherwise false. <span class='property-internal'>Required (defined)</span>\n     */\n    updateRecordScopeAndFactor: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { BatchCreate } from './batchCreate';\n\n\nexport class BillActionSplit {\n    /**\n     * List of billIds that need to be split <span class='property-internal'>Cannot be Empty</span>\n     */\n    ids: Array<number> | null | undefined;\n\n    /**\n     * Optional note/comment\n     */\n    note: string | null | undefined;\n\n    batchSettings: BatchCreate | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BillActionVoid {\n    /**\n     *  <span class='property-internal'>Cannot be Empty</span> <span class='property-internal'>Required (defined)</span>\n     */\n    ids: Array<number> | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Required (defined)</span>\n     */\n    void: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class BillCAPture {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    create: boolean | null | undefined;\n\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BillCAPtureClassPermission {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    create: boolean | null | undefined;\n\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BillCalendarizedHistory {\n    /**\n     * Billing Period (YYYYMM)\n     */\n    billingPeriod: number | null | undefined;\n\n    /**\n     * Calendarized Month\n     */\n    month: number | null | undefined;\n\n    /**\n     * Calendarized Year\n     */\n    year: number | null | undefined;\n\n    /**\n     * Is this period within the last year\n     */\n    current: boolean | null | undefined;\n\n    /**\n     * Account ID\n     */\n    accountId: number | null | undefined;\n\n    /**\n     * Meter ID\n     */\n    meterId: number | null | undefined;\n\n    /**\n     * Use per day (native)\n     */\n    usePerDay: number | null | undefined;\n\n    /**\n     * Use unit name (native)\n     */\n    useUnit: string | null | undefined;\n\n    /**\n     * Cost per day\n     */\n    costPerDay: number | null | undefined;\n\n    /**\n     * Unit cost\n     */\n    unitCost: number | null | undefined;\n\n    /**\n     * Cost unit name\n     */\n    costUnit: string | null | undefined;\n\n    /**\n     * Demand (native)\n     */\n    demand: number | null | undefined;\n\n    /**\n     * Demand unit name (native)\n     */\n    demandUnit: string | null | undefined;\n\n    /**\n     * Actual Demand (native)\n     */\n    actualDemand: number | null | undefined;\n\n    /**\n     * Actual Demand unit name (native)\n     */\n    actualDemandUnit: string | null | undefined;\n\n    /**\n     * Billed Demand (native)\n     */\n    billedDemand: number | null | undefined;\n\n    /**\n     * Billed Demand unit name (native)\n     */\n    billedDemandUnit: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BillContainsLineItemDescriptionsSettingRequest {\n    /**\n     * List of line item descriptions. Each description must be shorter than 100 characters. If SettingStatus is set to Skip and no value is provided, EnergyCAP default will be set <span class='property-internal'>Required when SettingStatus is set to Check, or Hold</span> <span class='property-internal'>List cannot be empty</span>\n     */\n    lineItemDescriptions: Array<string> | null | undefined;\n\n    /**\n     * The status of the audit setting <span class='property-internal'>One of 'Check', 'Hold', 'Skip'</span> <span class='property-internal'>Required (defined)</span>\n     */\n    settingStatus: string | null | undefined;\n\n    /**\n     * Minimum Bill/Meter Cost.  This audit will run only when the cost meets the specified minimum cost <span class='property-internal'>Required (defined)</span>\n     */\n    minimumCost: number | null | undefined;\n\n    /**\n     * List of Assignees.  Ids of the users the flag should get assigned to when the audit fails. <span class='property-internal'>Required (defined)</span>\n     */\n    assignees: Array<number> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { UserChild } from './userChild';\n\n\nexport class BillContainsLineItemDescriptionsSettingResponse {\n    /**\n     * List of line item descriptions. Each description must be shorter than 100 characters. If SettingStatus is set to Skip and no value is provided, EnergyCAP default will be set\n     */\n    lineItemDescriptions: Array<string> | null | undefined;\n\n    /**\n     * The status of the audit setting - Possible values Check, Hold, Skip\n     */\n    settingStatus: string | null | undefined;\n\n    /**\n     * The setting code\n     */\n    settingCode: string | null | undefined;\n\n    /**\n     * A description of the setting\n     */\n    settingDescription: string | null | undefined;\n\n    /**\n     * Minimum Bill/Meter Cost.  This audit wwill run only when the cost meets the specified minimum cost\n     */\n    minimumCost: number | null | undefined;\n\n    /**\n     * List of Assignees.  UserChildDTO representing the users the flag should get assigned to when the audit fails.\n     */\n    assignees: Array<UserChild> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BillContainsLineItemTypesSettingRequest {\n    /**\n     * List of observation type codes If SettingStatus is set to Skip and no value is provided, EnergyCAP default will be set <span class='property-internal'>Required when SettingStatus is set to Check, or Hold</span> <span class='property-internal'>List cannot be empty</span>\n     */\n    lineItemTypes: Array<string> | null | undefined;\n\n    /**\n     * The status of the audit setting <span class='property-internal'>One of 'Check', 'Hold', 'Skip'</span> <span class='property-internal'>Required (defined)</span>\n     */\n    settingStatus: string | null | undefined;\n\n    /**\n     * Minimum Bill/Meter Cost.  This audit will run only when the cost meets the specified minimum cost <span class='property-internal'>Required (defined)</span>\n     */\n    minimumCost: number | null | undefined;\n\n    /**\n     * List of Assignees.  Ids of the users the flag should get assigned to when the audit fails. <span class='property-internal'>Required (defined)</span>\n     */\n    assignees: Array<number> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { UserChild } from './userChild';\n\n\nexport class BillContainsLineItemTypesSettingResponse {\n    /**\n     * List of observation type codes If SettingStatus is set to Skip and no value is provided, EnergyCAP default will be set\n     */\n    lineItemTypes: Array<string> | null | undefined;\n\n    /**\n     * The status of the audit setting - Possible values Check, Hold, Skip\n     */\n    settingStatus: string | null | undefined;\n\n    /**\n     * The setting code\n     */\n    settingCode: string | null | undefined;\n\n    /**\n     * A description of the setting\n     */\n    settingDescription: string | null | undefined;\n\n    /**\n     * Minimum Bill/Meter Cost.  This audit wwill run only when the cost meets the specified minimum cost\n     */\n    minimumCost: number | null | undefined;\n\n    /**\n     * List of Assignees.  UserChildDTO representing the users the flag should get assigned to when the audit fails.\n     */\n    assignees: Array<UserChild> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { BillAccountBodyLineCreate } from './billAccountBodyLineCreate';\nimport { BillMeterCreate } from './billMeterCreate';\n\n\nexport class BillCreate {\n    /**\n     * The bill's account <span class='property-internal'>Required</span>\n     */\n    accountId: number | null ;\n\n    /**\n     * The bill's begin date <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 1899-12-31 and 3000-01-01</span>\n     */\n    beginDate: Date | null ;\n\n    /**\n     * The bill's end date <span class='property-internal'>Required</span> <span class='property-internal'>Must be greater than BeginDate</span> <span class='property-internal'>Must be between 1899-12-31 and 3000-01-01</span>\n     */\n    endDate: Date | null ;\n\n    /**\n     * The bill's billing period <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 190001 and 209912</span>\n     */\n    billingPeriod: number | null ;\n\n    /**\n     * The bill's accounting period Depending on your settings you can have up to 13 accounting periods <span class='property-internal'>Must be between 190001 and 209913</span>\n     */\n    accountPeriod: number | null | undefined;\n\n    /**\n     * Indicates if the bill is estimated\n     */\n    estimated: boolean | null | undefined;\n\n    /**\n     * The bill's entry method.  True = manual entry, false = automatic entry. <span class='property-internal'>Required</span>\n     */\n    manualEntry: boolean | null ;\n\n    /**\n     * The date and time of the bill statement <span class='property-internal'>Must be between 1899-12-31 and 3000-01-01</span>\n     */\n    statementDate: Date | null | undefined;\n\n    /**\n     * The date and time the bill is due <span class='property-internal'>Must be between 1899-12-31 and 3000-01-01</span>\n     */\n    dueDate: Date | null | undefined;\n\n    /**\n     * The date and time the of the next reading <span class='property-internal'>Must be between 1899-12-31 and 3000-01-01</span>\n     */\n    nextReading: Date | null | undefined;\n\n    /**\n     * The bill's control code <span class='property-internal'>Must be between 0 and 255 characters</span>\n     */\n    controlCode: string | null | undefined;\n\n    /**\n     * The bill's invoice number <span class='property-internal'>Must be between 0 and 32 characters</span>\n     */\n    invoiceNumber: string | null | undefined;\n\n    /**\n     * The bill note\n     */\n    note: string | null | undefined;\n\n    /**\n     * The meters with line items\n     */\n    meters: Array<BillMeterCreate> | null | undefined;\n\n    /**\n     * The account line items\n     */\n    accountBodyLines: Array<BillAccountBodyLineCreate> | null | undefined;\n\n    /**\n     * Existing batch id to add this bill to, if applicable. If batchId is provided, it needs to be an open batch.  If the batch is another user’s open batch, the permission \\\"Bills and Batches:Manage\\\" is required. If NOT provided, and current user has multiple open batches, the API will return an error.\n     */\n    batchId: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BillDeleteActionResult {\n    /**\n     * \n     */\n    selected: number | null | undefined;\n\n    /**\n     * \n     */\n    deleted: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { BillAccountBodyLineEdit } from './billAccountBodyLineEdit';\nimport { BillMeterEdit } from './billMeterEdit';\n\n\nexport class BillEdit {\n    /**\n     *  <span class='property-internal'>Required</span>\n     */\n    saveAsResolved: boolean | null ;\n\n    /**\n     *  <span class='property-internal'>Max length of 255</span> <span class='property-internal'>Required (defined)</span>\n     */\n    saveAsResolvedComment: string | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Required</span>\n     */\n    rerunResolvedIssues: boolean | null ;\n\n    /**\n     * The bill's account <span class='property-internal'>Required</span>\n     */\n    accountId: number | null ;\n\n    /**\n     * The bill's begin date <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 1899-12-31 and 3000-01-01</span>\n     */\n    beginDate: Date | null ;\n\n    /**\n     * The bill's end date <span class='property-internal'>Required</span> <span class='property-internal'>Must be greater than BeginDate</span> <span class='property-internal'>Must be between 1899-12-31 and 3000-01-01</span>\n     */\n    endDate: Date | null ;\n\n    /**\n     * The bill's billing period <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 190001 and 209912</span>\n     */\n    billingPeriod: number | null ;\n\n    /**\n     * The bill's accounting period Depending on your settings you can have up to 13 accounting periods <span class='property-internal'>Must be between 190001 and 209913</span> <span class='property-internal'>Required (defined)</span>\n     */\n    accountPeriod: number | null | undefined;\n\n    /**\n     * Indicates if the bill is estimated <span class='property-internal'>Required (defined)</span>\n     */\n    estimated: boolean | null | undefined;\n\n    /**\n     * The date and time of the bill statement <span class='property-internal'>Must be between 1899-12-31 and 3000-01-01</span> <span class='property-internal'>Required (defined)</span>\n     */\n    statementDate: Date | null | undefined;\n\n    /**\n     * The date and time the bill is due <span class='property-internal'>Must be between 1899-12-31 and 3000-01-01</span> <span class='property-internal'>Required (defined)</span>\n     */\n    dueDate: Date | null | undefined;\n\n    /**\n     * The date and time the next reading <span class='property-internal'>Must be between 1899-12-31 and 3000-01-01</span> <span class='property-internal'>Required (defined)</span>\n     */\n    nextReading: Date | null | undefined;\n\n    /**\n     * The bill's control code <span class='property-internal'>Must be between 0 and 255 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    controlCode: string | null | undefined;\n\n    /**\n     * The bill's invoice number <span class='property-internal'>Must be between 0 and 32 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    invoiceNumber: string | null | undefined;\n\n    /**\n     * The bill's \\\"approval change flag\\\". If a bill is approved and the approval system is turned on:     true = unapprove bill, false = don't change bill's approval status. If the approval system is not turned on:     the bill's approval status will not be changed regardless of this setting. <span class='property-internal'>Required (defined)</span>\n     */\n    setToUnapproved: boolean | null | undefined;\n\n    /**\n     * The bill note <span class='property-internal'>Required (defined)</span>\n     */\n    note: string | null | undefined;\n\n    /**\n     * The meters with line items <span class='property-internal'>Required (defined)</span>\n     */\n    meters: Array<BillMeterEdit> | null | undefined;\n\n    /**\n     * The account line items <span class='property-internal'>Required (defined)</span>\n     */\n    accountBodyLines: Array<BillAccountBodyLineEdit> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { BillEntryBodyLineChild } from './billEntryBodyLineChild';\nimport { BillEntryBodyLineWithNounChild } from './billEntryBodyLineWithNounChild';\nimport { BillEntryObservationTypeChild } from './billEntryObservationTypeChild';\n\n\nexport class BillEntryBodyLine {\n    /**\n     * The body line identifier\n     */\n    bodyLineId: number | null | undefined;\n\n    /**\n     * The body line's caption\n     */\n    caption: string | null | undefined;\n\n    value: BillEntryBodyLineWithNounChild | null | undefined;\n\n    cost: BillEntryBodyLineChild | null | undefined;\n\n    observationType: BillEntryObservationTypeChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { UnitChild } from './unitChild';\n\n\nexport class BillEntryBodyLineChild {\n    /**\n     * The body line's numeric value\n     */\n    value: number | null | undefined;\n\n    /**\n     * The body line's observation type\n     */\n    type: string | null | undefined;\n\n    unit: UnitChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { UnitChild } from './unitChild';\n\n\nexport class BillEntryBodyLineWithNounChild {\n    /**\n     * The body line's noun\n     */\n    noun: string | null | undefined;\n\n    /**\n     * The body line's numeric value\n     */\n    value: number | null | undefined;\n\n    /**\n     * The body line's observation type\n     */\n    type: string | null | undefined;\n\n    unit: UnitChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { BillEntryBodyLine } from './billEntryBodyLine';\n\n\nexport class BillEntryMeterChild {\n    /**\n     * True means a \\\"template\\\" was used to generate the bodylines False means an existing bill was used to generate the bodylines\n     */\n    fromTemplate: boolean | null | undefined;\n\n    /**\n     * The meter identifier\n     */\n    meterId: number | null | undefined;\n\n    /**\n     * The meter code\n     */\n    meterCode: string | null | undefined;\n\n    /**\n     * The meter name\n     */\n    meterInfo: string | null | undefined;\n\n    /**\n     * The meter gl code\n     */\n    generalLedgerCode: string | null | undefined;\n\n    /**\n     * The bill's meter-level details\n     */\n    bodyLines: Array<BillEntryBodyLine> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BillEntryObservationTypeChild {\n    /**\n     * The observation type identifier\n     */\n    observationTypeId: number | null | undefined;\n\n    /**\n     * The observation type code\n     */\n    observationTypeCode: string | null | undefined;\n\n    /**\n     * The observation type name\n     */\n    observationTypeInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { BatchChild } from './batchChild';\nimport { BillEntryBodyLine } from './billEntryBodyLine';\nimport { BillEntryMeterChild } from './billEntryMeterChild';\nimport { BillHeaderChild } from './billHeaderChild';\nimport { CostConversion } from './costConversion';\nimport { ObservationMethodChild } from './observationMethodChild';\n\n\nexport class BillEntryResponse {\n    /**\n     * The bill identifier\n     */\n    billId: number | null | undefined;\n\n    /**\n     * The account identifier\n     */\n    accountId: number | null | undefined;\n\n    /**\n     * The vendor identifier\n     */\n    vendorId: number | null | undefined;\n\n    /**\n     * Indicates if a new bill batch needs to be opened to place this bill in\n     */\n    needsToOpenBatch: boolean | null | undefined;\n\n    /**\n     * Indicates how many open batches the user has\n     */\n    numberOfOpenBatches: number | null | undefined;\n\n    /**\n     * The bill's begin date\n     */\n    beginDate: Date | null | undefined;\n\n    /**\n     * The bill's end date\n     */\n    endDate: Date | null | undefined;\n\n    /**\n     * The bill's billing period\n     */\n    billingPeriod: number | null | undefined;\n\n    /**\n     * The bill's number of days\n     */\n    days: number | null | undefined;\n\n    /**\n     * The bill's total cost in the system currency. The system currency is the reporting/global currency unit.\n     */\n    totalCost: number | null | undefined;\n\n    /**\n     * The bill's total cost in the source currency. The source currency is the native currency unit.\n     */\n    totalSourceCost: number | null | undefined;\n\n    costConversion: CostConversion | null | undefined;\n\n    dueDate: BillHeaderChild | null | undefined;\n\n    statementDate: BillHeaderChild | null | undefined;\n\n    invoiceNumber: BillHeaderChild | null | undefined;\n\n    controlCode: BillHeaderChild | null | undefined;\n\n    nextReading: BillHeaderChild | null | undefined;\n\n    accountPeriodName: BillHeaderChild | null | undefined;\n\n    accountPeriodNumber: BillHeaderChild | null | undefined;\n\n    accountPeriodYear: BillHeaderChild | null | undefined;\n\n    estimated: BillHeaderChild | null | undefined;\n\n    /**\n     * The bill's note\n     */\n    billNote: string | null | undefined;\n\n    /**\n     * Indicates if the bill has been voided\n     */\n    void: boolean | null | undefined;\n\n    /**\n     * Indicates if the bill is from a vendor\n     */\n    fromVendor: boolean | null | undefined;\n\n    observationMethod: ObservationMethodChild | null | undefined;\n\n    /**\n     * Indicates if the bill has been approved\n     */\n    approved: boolean | null | undefined;\n\n    /**\n     * Indicates if the bill has been split\n     */\n    hasBeenSplit: boolean | null | undefined;\n\n    /**\n     * Indicates if the bill is being withheld from bill exports\n     */\n    exportHold: boolean | null | undefined;\n\n    /**\n     * Indicates if the bill has been ap exported\n     */\n    apExported: boolean | null | undefined;\n\n    /**\n     * Indicates if the bill has been gl exported\n     */\n    glExported: boolean | null | undefined;\n\n    /**\n     * Indicates if the bill has been exported to bill payment\n     */\n    paymentExported: boolean | null | undefined;\n\n    /**\n     * Indicates if the bill is an accrual bill\n     */\n    accrual: boolean | null | undefined;\n\n    /**\n     * The number of the check that the bill was paid with\n     */\n    checkNumber: string | null | undefined;\n\n    /**\n     * The date and time of the check\n     */\n    checkDate: Date | null | undefined;\n\n    /**\n     * The payment status of the bill\n     */\n    payStatus: string | null | undefined;\n\n    /**\n     * The date when funds were withdrawn\n     */\n    fundsWithdrawnDate: Date | null | undefined;\n\n    /**\n     * The date and time that the check cleared\n     */\n    clearedDate: Date | null | undefined;\n\n    /**\n     * The fully qualified url to the bill image\n     */\n    billImageUrl: string | null | undefined;\n\n    /**\n     * The general ledger code of the bill's account-level details (\\\"Mixed\\\" if there is more than one)\n     */\n    generalLedgerCode: string | null | undefined;\n\n    /**\n     * The billing account's meters\n     */\n    meters: Array<BillEntryMeterChild> | null | undefined;\n\n    /**\n     * The bill's account-level details\n     */\n    accountBodyLines: Array<BillEntryBodyLine> | null | undefined;\n\n    /**\n     * The bill's vendor template details\n     */\n    vendorBodyLines: Array<BillEntryBodyLine> | null | undefined;\n\n    batch: BatchChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BillExport {\n    /**\n     *  <span class='property-internal'>Cannot be Empty</span> <span class='property-internal'>NULL Valid</span> <span class='property-internal'>Required (defined)</span>\n     */\n    billIds: Array<number> | null | undefined;\n\n    /**\n     * The export mode to use. Valid values are 'AP', 'GL', 'Payment' <span class='property-internal'>Required</span> <span class='property-internal'>One of 'ap', 'gl', 'payment'</span>\n     */\n    exportMode: string | null ;\n\n    /**\n     * Flag to mark bills as exported after the export is complete. <span class='property-internal'>Required</span>\n     */\n    markAsExported: boolean | null ;\n\n    /**\n     * Optional filename to use for the export file. Filenames may only contain alphanumeric characters, dashes, underscores, or periods. <span class='property-internal'>Required (defined)</span>\n     */\n    fileName: string | null | undefined;\n\n    /**\n     * Optional note/comment. <span class='property-internal'>Required (defined)</span>\n     */\n    exportNote: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BillExportOptions {\n    /**\n     * The export mode to use. Valid values are 'AP', 'GL', 'Payment' <span class='property-internal'>Required</span> <span class='property-internal'>One of 'ap', 'gl', 'payment'</span>\n     */\n    exportMode: string | null ;\n\n    /**\n     * Flag to mark bills as exported after the export is complete. <span class='property-internal'>Required</span>\n     */\n    markAsExported: boolean | null ;\n\n    /**\n     * Optional filename to use for the export file. Filenames may only contain alphanumeric characters, dashes, underscores, or periods. <span class='property-internal'>Required (defined)</span>\n     */\n    fileName: string | null | undefined;\n\n    /**\n     * Optional note/comment. <span class='property-internal'>Required (defined)</span>\n     */\n    exportNote: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BillHeaderChild {\n    /**\n     * The bill header value\n     */\n    value: string | null | undefined;\n\n    /**\n     * Indicates if the bill header is required during bill entry\n     */\n    required: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { BillHeaderUpdateAccountPeriodChild } from './billHeaderUpdateAccountPeriodChild';\nimport { BillHeaderUpdateBeginDateChild } from './billHeaderUpdateBeginDateChild';\nimport { BillHeaderUpdateBillingPeriodChild } from './billHeaderUpdateBillingPeriodChild';\nimport { BillHeaderUpdateControlCodeChild } from './billHeaderUpdateControlCodeChild';\nimport { BillHeaderUpdateDueDateChild } from './billHeaderUpdateDueDateChild';\nimport { BillHeaderUpdateEndDateChild } from './billHeaderUpdateEndDateChild';\nimport { BillHeaderUpdateEstimatedChild } from './billHeaderUpdateEstimatedChild';\nimport { BillHeaderUpdateInvoiceNumberChild } from './billHeaderUpdateInvoiceNumberChild';\nimport { BillHeaderUpdateStatementDateChild } from './billHeaderUpdateStatementDateChild';\n\n\n/**\n * Bill header values to update\n */\nexport class BillHeaderUpdate {\n    beginDate: BillHeaderUpdateBeginDateChild | null ;\n\n    endDate: BillHeaderUpdateEndDateChild | null ;\n\n    dueDate: BillHeaderUpdateDueDateChild | null ;\n\n    statementDate: BillHeaderUpdateStatementDateChild | null ;\n\n    controlCode: BillHeaderUpdateControlCodeChild | null ;\n\n    invoiceNumber: BillHeaderUpdateInvoiceNumberChild | null ;\n\n    accountPeriod: BillHeaderUpdateAccountPeriodChild | null ;\n\n    billingPeriod: BillHeaderUpdateBillingPeriodChild | null ;\n\n    estimated: BillHeaderUpdateEstimatedChild | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\n/**\n * Account Period\n */\nexport class BillHeaderUpdateAccountPeriodChild {\n    /**\n     *  <span class='property-internal'>Must be between 190001 and 209913</span> <span class='property-internal'>Required (defined)</span>\n     */\n    accountPeriod: number | null | undefined;\n\n    /**\n     * Indicates whether or not the header value is being updated <span class='property-internal'>Required</span>\n     */\n    update: boolean | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\n/**\n * Begin Date\n */\nexport class BillHeaderUpdateBeginDateChild {\n    /**\n     *  <span class='property-internal'>Required when Update is set to True, case sensitive.</span> <span class='property-internal'>Must be between 1899-12-31 and 3000-01-01</span>\n     */\n    beginDate: Date | null | undefined;\n\n    /**\n     * Indicates whether or not the header value is being updated <span class='property-internal'>Required</span>\n     */\n    update: boolean | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\n/**\n * Billing Period\n */\nexport class BillHeaderUpdateBillingPeriodChild {\n    /**\n     *  <span class='property-internal'>Required when Update is set to True, case sensitive.</span> <span class='property-internal'>Valid billing period between 190001 and 209912</span> <span class='property-internal'>NULL Valid</span>\n     */\n    billingPeriod: number | null | undefined;\n\n    /**\n     * Indicates whether or not the header value is being updated <span class='property-internal'>Required</span>\n     */\n    update: boolean | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\n/**\n * Control Code\n */\nexport class BillHeaderUpdateControlCodeChild {\n    /**\n     *  <span class='property-internal'>Must be between 0 and 255 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    controlCode: string | null | undefined;\n\n    /**\n     * Indicates whether or not the header value is being updated <span class='property-internal'>Required</span>\n     */\n    update: boolean | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\n/**\n * Due Date\n */\nexport class BillHeaderUpdateDueDateChild {\n    /**\n     *  <span class='property-internal'>Must be between 1899-12-31 and 3000-01-01</span> <span class='property-internal'>Required (defined)</span>\n     */\n    dueDate: Date | null | undefined;\n\n    /**\n     * Indicates whether or not the header value is being updated <span class='property-internal'>Required</span>\n     */\n    update: boolean | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\n/**\n * End Date\n */\nexport class BillHeaderUpdateEndDateChild {\n    /**\n     *  <span class='property-internal'>Required when Update is set to True, case sensitive.</span> <span class='property-internal'>Must be between 1899-12-31 and 3000-01-01</span>\n     */\n    endDate: Date | null | undefined;\n\n    /**\n     * Indicates whether or not the header value is being updated <span class='property-internal'>Required</span>\n     */\n    update: boolean | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\n/**\n * Estimated\n */\nexport class BillHeaderUpdateEstimatedChild {\n    /**\n     *  <span class='property-internal'>Required when Update is set to True, case sensitive.</span>\n     */\n    estimated: boolean | null | undefined;\n\n    /**\n     * Indicates whether or not the header value is being updated <span class='property-internal'>Required</span>\n     */\n    update: boolean | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\n/**\n * Invoice Number\n */\nexport class BillHeaderUpdateInvoiceNumberChild {\n    /**\n     *  <span class='property-internal'>Must be between 0 and 32 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    invoiceNumber: string | null | undefined;\n\n    /**\n     * Indicates whether or not the header value is being updated <span class='property-internal'>Required</span>\n     */\n    update: boolean | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\n/**\n * Statement Date\n */\nexport class BillHeaderUpdateStatementDateChild {\n    /**\n     *  <span class='property-internal'>Must be between 1899-12-31 and 3000-01-01</span> <span class='property-internal'>Required (defined)</span>\n     */\n    statementDate: Date | null | undefined;\n\n    /**\n     * Indicates whether or not the header value is being updated <span class='property-internal'>Required</span>\n     */\n    update: boolean | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BillHeaderWorkflowChild {\n    /**\n     * \n     */\n    useField: boolean | null | undefined;\n\n    /**\n     * \n     */\n    required: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { BillAccountMeterChild } from './billAccountMeterChild';\nimport { UnitChild } from './unitChild';\n\n\nexport class BillHistoryResponse {\n    /**\n     * The bill's bill id\n     */\n    billId: number | null | undefined;\n\n    /**\n     * The bill's billing period\n     */\n    billingPeriod: number | null | undefined;\n\n    /**\n     * The bill's begin date\n     */\n    beginDate: Date | null | undefined;\n\n    /**\n     * The bill's end date\n     */\n    endDate: Date | null | undefined;\n\n    /**\n     * The bill's created date\n     */\n    createdDate: Date | null | undefined;\n\n    /**\n     * The bill's total cost\n     */\n    totalCost: number | null | undefined;\n\n    totalCostUnit: UnitChild | null | undefined;\n\n    /**\n     * The bill's void indicator\n     */\n    void: boolean | null | undefined;\n\n    /**\n     * The bill's accrual indicator\n     */\n    accrual: boolean | null | undefined;\n\n    /**\n     * The bill's invoice number\n     */\n    invoiceNumber: string | null | undefined;\n\n    /**\n     * Indicates if the bill is estimated or not\n     */\n    estimated: boolean | null | undefined;\n\n    /**\n     * The bill's due date\n     */\n    dueDate: Date | null | undefined;\n\n    /**\n     * The bill's statement date\n     */\n    statementDate: Date | null | undefined;\n\n    /**\n     * The bill's account-meter summaries\n     */\n    billAccountMeters: Array<BillAccountMeterChild> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BillIdResponse {\n    /**\n     * The bill identifier\n     */\n    billId: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { KickoutField } from './kickoutField';\nimport { KickoutValue } from './kickoutValue';\n\n\nexport class BillImportKickoutDetailsResponse {\n    /**\n     * The kickout fields\n     */\n    fields: Array<KickoutField> | null | undefined;\n\n    /**\n     * The kickout values\n     */\n    data: Array<Array<KickoutValue>> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { BillImportProfileObservation } from './billImportProfileObservation';\n\n\nexport class BillImportProfileColumnMapping {\n    /**\n     *  <span class='property-internal'>Required</span> <span class='property-internal'>One of 'mm/dd/yyyy', 'Month dd yyyy', 'dd/mm/yyyy', 'dd Month yyyy', 'yyyymmdd'</span> <span class='property-internal'>Case sensitive</span>\n     */\n    dateFormat: string | null ;\n\n    /**\n     *  <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 1 and 2147483647</span>\n     */\n    accountCodeColumnIndex: number | null ;\n\n    /**\n     *  <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 1 and 2147483647</span>\n     */\n    startDateColumnIndex: number | null ;\n\n    /**\n     *  <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 1 and 2147483647</span>\n     */\n    endDateColumnIndex: number | null ;\n\n    /**\n     *  <span class='property-internal'>Must be between 1 and 2147483647</span>\n     */\n    vendorCodeColumnIndex: number | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Must be between 1 and 2147483647</span>\n     */\n    payAmountColumnIndex: number | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Must be between 1 and 2147483647</span>\n     */\n    billingPeriodColumnIndex: number | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Must be between 1 and 2147483647</span>\n     */\n    accountPeriodColumnIndex: number | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Must be between 1 and 2147483647</span>\n     */\n    statementDateColumnIndex: number | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Must be between 1 and 2147483647</span>\n     */\n    dueDateColumnIndex: number | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Must be between 1 and 2147483647</span>\n     */\n    controlCodeColumnIndex: number | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Must be between 1 and 2147483647</span>\n     */\n    invoiceNumberColumnIndex: number | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Must be between 1 and 2147483647</span>\n     */\n    meterCodeColumnIndex: number | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Must be between 1 and 2147483647</span>\n     */\n    commodityColumnIndex: number | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Must be between 1 and 2147483647</span>\n     */\n    serviceChargeColumnIndex: number | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Must be between 1 and 2147483647</span>\n     */\n    aceFlagColumnIndex: number | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Must be between 1 and 2147483647</span>\n     */\n    vprFlagColumnIndex: number | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Must be between 1 and 2147483647</span>\n     */\n    rateColumnIndex: number | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Must be between 1 and 2147483647</span>\n     */\n    serialNumberColumnIndex: number | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Must be between 1 and 2147483647</span>\n     */\n    billNoteColumnIndex: number | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Cannot be Empty</span>\n     */\n    observations: Array<BillImportProfileObservation> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BillImportProfileObservation {\n    /**\n     *  <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 1 and 2147483647</span>\n     */\n    columnIndex: number | null ;\n\n    /**\n     *  <span class='property-internal'>Required</span>\n     */\n    observationTypeCode: string | null ;\n\n    /**\n     *  <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 100 characters</span>\n     */\n    caption: string | null ;\n\n    /**\n     *  <span class='property-internal'>Required</span>\n     */\n    unitCode: string | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { BillImportProfileColumnMapping } from './billImportProfileColumnMapping';\n\n\nexport class BillImportProfileRequest {\n    /**\n     *  <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 64 characters</span>\n     */\n    profileCode: string | null ;\n\n    columnMapping: BillImportProfileColumnMapping | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { BillImportProfileColumnMapping } from './billImportProfileColumnMapping';\n\n\nexport class BillImportProfileResponse {\n    /**\n     * \n     */\n    profileId: number | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 64 characters</span> <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 64 characters</span>\n     */\n    profileCode: string | null ;\n\n    columnMapping: BillImportProfileColumnMapping | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { BatchSettings } from './batchSettings';\n\n\nexport class BillImportRequest {\n    /**\n     * optional - if not provided, we assume the data is in Advanced format A bill import profile code.  Maps given data to Advanced format using the mappings defined by this profile\n     */\n    profileCode: string | null | undefined;\n\n    /**\n     * FileName for the import file. Should include extension. Example: fileABC.csv Data contains the contents. The importer will save the under this file name. The extension allows the importer to read the data in the proper format (csv,xlsx,zip) <span class='property-internal'>Required</span>\n     */\n    fileName: string | null ;\n\n    /**\n     * The base64 encoded file. <span class='property-internal'>Required</span>\n     */\n    data: string | null ;\n\n    /**\n     * Optional property to indicate whether or not to suppress the Bill Capture Automation notification that would normally be sent after a successful import. This is used for microbatches to avoid sending a notification for each microbatch that is imported. Instead, the notification will be sent after all microbatches have been imported from the BillCapture process. Assumes false if not provided.\n     */\n    suppressBillCaptureNotification: boolean | null | undefined;\n\n    batchSettings: BatchSettings | null | undefined;\n\n    /**\n     * Optional note/comment.\n     */\n    importNote: string | null | undefined;\n\n    /**\n     * Optional  property to indicate if failed audits automatically get marked as resolved\n     */\n    saveAsResolved: boolean | null | undefined;\n\n    /**\n     * Optional comment to explain why the audit is being auto resolved\n     */\n    comment: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BillImportTaskKickoutSummaryResponse {\n    /**\n     * The identifier for the task that produced the kickouts\n     */\n    taskGuid: string | null | undefined;\n\n    /**\n     * The name of the imported file that produced the kickouts\n     */\n    fileName: string | null | undefined;\n\n    /**\n     * A list of the kickout messages produced by the uploaded file.\n     */\n    kickoutMessages: Array<string> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\n/**\n * Represents workflow settings for bill imports\n */\nexport class BillImportWorkflowSettings {\n    /**\n     * Determines how bill import errors are handled. If your organization utilizes BillCAPture, this is forced to MarkBatchPending. <span class='property-internal'>One of 'MarkBatchPending', 'ProcessValidBills'</span>\n     */\n    errorHandling: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { BatchSettings } from './batchSettings';\n\n\nexport class BillKickoutImportRequest {\n    batchSettings: BatchSettings | null | undefined;\n\n    /**\n     * Optional note/comment.\n     */\n    importNote: string | null | undefined;\n\n    /**\n     * Optional  property to indicate if failed audits automatically get marked as resolved\n     */\n    saveAsResolved: boolean | null | undefined;\n\n    /**\n     * Optional comment to explain why the audit is being auto resolved\n     */\n    comment: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BillLineTypeMappingResponse {\n    /**\n     * The observation type identifier\n     */\n    observationTypeId: number | null | undefined;\n\n    /**\n     * The observation type code that the caption maps to\n     */\n    observationTypeCode: string | null | undefined;\n\n    /**\n     * The observation type info that the caption maps to\n     */\n    observationTypeInfo: string | null | undefined;\n\n    /**\n     * The account identifier\n     */\n    accountId: number | null | undefined;\n\n    /**\n     * The account code that the caption maps to\n     */\n    accountCode: string | null | undefined;\n\n    /**\n     * The account info that the caption maps to\n     */\n    accountInfo: string | null | undefined;\n\n    /**\n     * The vendor identifier\n     */\n    vendorId: number | null | undefined;\n\n    /**\n     * The vendor code that the caption maps to\n     */\n    vendorCode: string | null | undefined;\n\n    /**\n     * The vendor info that the caption maps to\n     */\n    vendorInfo: string | null | undefined;\n\n    /**\n     * The type of mapping, either default, vendor or account\n     */\n    type: string | null | undefined;\n\n    /**\n     * The bill line mapping operator identifier\n     */\n    operatorId: number | null | undefined;\n\n    /**\n     * The match operator used to map the caption\n     */\n    operator: string | null | undefined;\n\n    /**\n     * The caption match that maps to the observation type\n     */\n    caption: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class BillListAdministrator {\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BillListAdministratorClassPermission {\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BillMeterBodyLineCreate {\n    /**\n     * The bodyline's observation type <span class='property-internal'>Required</span>\n     */\n    observationTypeId: number | null ;\n\n    /**\n     * The bodyline's unit of measure <span class='property-internal'>Required when Value is set</span>\n     */\n    valueUnitId: number | null | undefined;\n\n    /**\n     * The line item's value <span class='property-internal'>Required when ValueUnitId is set</span>\n     */\n    value: number | null | undefined;\n\n    /**\n     * The bodyline's cost unit of measure for this <span class='property-internal'>Required when Cost is set</span>\n     */\n    costUnitId: number | null | undefined;\n\n    /**\n     * The cost attributed to the line item <span class='property-internal'>Required when CostUnitId is set</span>\n     */\n    cost: number | null | undefined;\n\n    /**\n     * The caption <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 100 characters</span>\n     */\n    caption: string | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BillMeterBodyLineEdit {\n    /**\n     * The bodyline's id for an existing bodyline <span class='property-internal'>Required (defined)</span>\n     */\n    bodyLineId: number | null | undefined;\n\n    /**\n     * The bodyline's observation type <span class='property-internal'>Required</span>\n     */\n    observationTypeId: number | null ;\n\n    /**\n     * The bodyline's unit of measure <span class='property-internal'>Required when Value is set</span>\n     */\n    valueUnitId: number | null | undefined;\n\n    /**\n     * The line item's value <span class='property-internal'>Required when ValueUnitId is set</span>\n     */\n    value: number | null | undefined;\n\n    /**\n     * The bodyline's cost unit of measure for this <span class='property-internal'>Required when Cost is set</span>\n     */\n    costUnitId: number | null | undefined;\n\n    /**\n     * The cost attributed to the line item <span class='property-internal'>Required when CostUnitId is set</span>\n     */\n    cost: number | null | undefined;\n\n    /**\n     * The caption <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 100 characters</span>\n     */\n    caption: string | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { BillMeterBodyLineCreate } from './billMeterBodyLineCreate';\n\n\nexport class BillMeterCreate {\n    /**\n     * The meter the line items are assigned to <span class='property-internal'>Required</span>\n     */\n    meterId: number | null ;\n\n    /**\n     *  <span class='property-internal'>Required</span> <span class='property-internal'>Cannot be Empty</span>\n     */\n    bodyLines: Array<BillMeterBodyLineCreate> | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { BillMeterBodyLineEdit } from './billMeterBodyLineEdit';\n\n\nexport class BillMeterEdit {\n    /**\n     * The meter the line items are assigned to <span class='property-internal'>Required</span>\n     */\n    meterId: number | null ;\n\n    /**\n     *  <span class='property-internal'>Required</span> <span class='property-internal'>Cannot be Empty</span>\n     */\n    bodyLines: Array<BillMeterBodyLineEdit> | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BillPaymentDetailsFileResponse {\n    /**\n     * Number of successful bill payment detail updates <span class='property-internal'>Required (defined)</span>\n     */\n    success: number | null | undefined;\n\n    /**\n     * Number of unsuccessful bill payment detail updates <span class='property-internal'>Required (defined)</span>\n     */\n    failure: number | null | undefined;\n\n    /**\n     * Base64 encoded File content of unsuccessful bill payment detail updates with reasons for failure <span class='property-internal'>Required (defined)</span>\n     */\n    kickoutStream: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { OptionalUpdateNullableDateOnly } from './optionalUpdateNullableDateOnly';\nimport { OptionalUpdateNullableDecimal } from './optionalUpdateNullableDecimal';\nimport { OptionalUpdateNullableInt32 } from './optionalUpdateNullableInt32';\nimport { OptionalUpdateString } from './optionalUpdateString';\n\n\nexport class BillPaymentDetailsOptionalItem {\n    /**\n     * Identifier for bill to update <span class='property-internal'>Required</span>\n     */\n    billId: number | null ;\n\n    checkNumber: OptionalUpdateString | null | undefined;\n\n    checkDate: OptionalUpdateNullableDateOnly | null | undefined;\n\n    payStatus: OptionalUpdateString | null | undefined;\n\n    clearedDate: OptionalUpdateNullableDateOnly | null | undefined;\n\n    accountingPeriod: OptionalUpdateNullableInt32 | null | undefined;\n\n    fundsWithdrawnDate: OptionalUpdateNullableDateOnly | null | undefined;\n\n    paymentAmount: OptionalUpdateNullableDecimal | null | undefined;\n\n    paymentType: OptionalUpdateString | null | undefined;\n\n    paymentVoucher: OptionalUpdateString | null | undefined;\n\n    checkImage: OptionalUpdateString | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { OptionalUpdateNullableDateOnly } from './optionalUpdateNullableDateOnly';\nimport { OptionalUpdateNullableDecimal } from './optionalUpdateNullableDecimal';\nimport { OptionalUpdateNullableInt32 } from './optionalUpdateNullableInt32';\nimport { OptionalUpdateString } from './optionalUpdateString';\n\n\nexport class BillPaymentDetailsOptionalItemWithErrors {\n    /**\n     * Give error details <span class='property-internal'>Required (defined)</span>\n     */\n    errors: string | null | undefined;\n\n    /**\n     * Identifier for bill to update <span class='property-internal'>Required</span>\n     */\n    billId: number | null ;\n\n    checkNumber: OptionalUpdateString | null | undefined;\n\n    checkDate: OptionalUpdateNullableDateOnly | null | undefined;\n\n    payStatus: OptionalUpdateString | null | undefined;\n\n    clearedDate: OptionalUpdateNullableDateOnly | null | undefined;\n\n    accountingPeriod: OptionalUpdateNullableInt32 | null | undefined;\n\n    fundsWithdrawnDate: OptionalUpdateNullableDateOnly | null | undefined;\n\n    paymentAmount: OptionalUpdateNullableDecimal | null | undefined;\n\n    paymentType: OptionalUpdateString | null | undefined;\n\n    paymentVoucher: OptionalUpdateString | null | undefined;\n\n    checkImage: OptionalUpdateString | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { BillPaymentDetailsOptionalItemWithErrors } from './billPaymentDetailsOptionalItemWithErrors';\n\n\nexport class BillPaymentDetailsOptionalResponse {\n    /**\n     * Number of successful bill payment detail updates <span class='property-internal'>Required (defined)</span>\n     */\n    success: number | null | undefined;\n\n    /**\n     * Number of unsuccessful bill payment detail updates <span class='property-internal'>Required (defined)</span>\n     */\n    failure: number | null | undefined;\n\n    /**\n     * List of unsuccessful bill payment detail updates with reasons for failure <span class='property-internal'>Required (defined)</span>\n     */\n    failedBillPaymentDetailsOptionalItems: Array<BillPaymentDetailsOptionalItemWithErrors> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BillPaymentEventCreate {\n    /**\n     * Bill ids for the event <span class='property-internal'>Required</span> <span class='property-internal'>Cannot be Empty</span>\n     */\n    billIds: Array<number> | null ;\n\n    /**\n     * The payment event type of the event. For example, paymentGroup.approved, payment.open, payment.returned <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 32 characters</span>\n     */\n    paymentEventType: string | null ;\n\n    /**\n     * An object representing the JSON received by the web hook\n     */\n    webhookPayload: any | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BillPaymentEventResponse {\n    /**\n     * The identifier of the payment event\n     */\n    paymentEventId: number | null | undefined;\n\n    /**\n     * The payment type of the event. For example, paymentGroup.approved, payment.open, payment.returned\n     */\n    paymentEventType: string | null | undefined;\n\n    /**\n     * The date and time of the bill payment event\n     */\n    createdDate: Date | null | undefined;\n\n    /**\n     * An object representing the JSON received by the web hook\n     */\n    webhookPayload: any | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AccountChild } from './accountChild';\nimport { BatchChild } from './batchChild';\nimport { BillReversal } from './billReversal';\nimport { CostConversion } from './costConversion';\nimport { ObservationMethodChild } from './observationMethodChild';\nimport { UserChild } from './userChild';\n\n\nexport class BillResponse {\n    /**\n     * The bill identifier\n     */\n    billId: number | null | undefined;\n\n    batch: BatchChild | null | undefined;\n\n    account: AccountChild | null | undefined;\n\n    /**\n     * The bill's begin date\n     */\n    beginDate: Date | null | undefined;\n\n    /**\n     * The bill's end date\n     */\n    endDate: Date | null | undefined;\n\n    /**\n     * The bill's billing period\n     */\n    billingPeriod: number | null | undefined;\n\n    /**\n     * The bill's accounting period\n     */\n    accountPeriod: number | null | undefined;\n\n    /**\n     * The bill's total cost in the system currency. The system currency is the reporting/global currency unit.\n     */\n    totalCost: number | null | undefined;\n\n    /**\n     * The bill's total cost in the source currency. The source currency is the native currency unit.\n     */\n    totalSourceCost: number | null | undefined;\n\n    costConversion: CostConversion | null | undefined;\n\n    /**\n     * Indicates if the bill is estimated\n     */\n    estimated: boolean | null | undefined;\n\n    /**\n     * Indicates if the bill has been approved\n     */\n    approved: boolean | null | undefined;\n\n    /**\n     * The date and time the bill was approved\n     */\n    approveDate: Date | null | undefined;\n\n    approvedBy: UserChild | null | undefined;\n\n    /**\n     * Indicates if the bill has been exported\n     */\n    exported: boolean | null | undefined;\n\n    /**\n     * The date and time the bill was exported\n     */\n    exportDate: Date | null | undefined;\n\n    exportedBy: UserChild | null | undefined;\n\n    observationMethod: ObservationMethodChild | null | undefined;\n\n    /**\n     * The date and time of the bill statement\n     */\n    statementDate: Date | null | undefined;\n\n    /**\n     * The date and time the bill is due\n     */\n    dueDate: Date | null | undefined;\n\n    /**\n     * The date and time of the next reading\n     */\n    nextReading: Date | null | undefined;\n\n    /**\n     * The bill's control code\n     */\n    controlCode: string | null | undefined;\n\n    /**\n     * The bill's invoice number\n     */\n    invoiceNumber: string | null | undefined;\n\n    /**\n     * The number of pages on the invoice\n     */\n    invoicePages: number | null | undefined;\n\n    /**\n     * The check number\n     */\n    checkNumber: string | null | undefined;\n\n    /**\n     * The date and time of the check\n     */\n    checkDate: Date | null | undefined;\n\n    /**\n     * The pay status of the bill\n     */\n    payStatus: string | null | undefined;\n\n    /**\n     * The date when funds were withdrawn\n     */\n    fundsWithdrawnDate: Date | null | undefined;\n\n    /**\n     * The cleared date\n     */\n    clearedDate: Date | null | undefined;\n\n    createdBy: UserChild | null | undefined;\n\n    /**\n     * The date and time the bill was created\n     */\n    createdDate: Date | null | undefined;\n\n    modifiedBy: UserChild | null | undefined;\n\n    /**\n     * The date and time of the most recent modification\n     */\n    modifiedDate: Date | null | undefined;\n\n    /**\n     * Indicates if the bill has been voided\n     */\n    void: boolean | null | undefined;\n\n    /**\n     * Indicates if the bill record has been cleaned. Cleaning is an internal EnergyCAP process\n     */\n    dirty: boolean | null | undefined;\n\n    /**\n     * Indicates if the import has been verified\n     */\n    importVerified: boolean | null | undefined;\n\n    /**\n     * Indicates if the bill is an accrual\n     */\n    accrual: boolean | null | undefined;\n\n    /**\n     * Indicates if the bill is a reversed accrual\n     */\n    accrualReversed: boolean | null | undefined;\n\n    /**\n     * The date and time the accrual was reversed\n     */\n    accrualReversedDate: Date | null | undefined;\n\n    /**\n     * Indicates if the bill is held for export\n     */\n    exportHold: boolean | null | undefined;\n\n    /**\n     * Indicates if the bill has been gl exported\n     */\n    glExported: boolean | null | undefined;\n\n    glExportedBy: UserChild | null | undefined;\n\n    /**\n     * The date and time the bill was exported to gl\n     */\n    glExportDate: Date | null | undefined;\n\n    /**\n     * Indicates if the bill has been bill payment exported\n     */\n    paymentExported: boolean | null | undefined;\n\n    paymentExportedBy: UserChild | null | undefined;\n\n    /**\n     * The date and time the bill was exported to bill payment\n     */\n    paymentExportDate: Date | null | undefined;\n\n    /**\n     * Indicates if the bill is from a vendor\n     */\n    fromVendor: boolean | null | undefined;\n\n    /**\n     * Indicates if the bill has been split\n     */\n    hasBeenSplit: boolean | null | undefined;\n\n    /**\n     * The date and time the bill was split\n     */\n    wasSplitDate: Date | null | undefined;\n\n    /**\n     * The transaction reference number of the bill\n     */\n    transRefNum: string | null | undefined;\n\n    /**\n     * The payment type of the bill.  For example, Check, VCard, and ACH.\n     */\n    paymentType: string | null | undefined;\n\n    /**\n     * The actual amount paid\n     */\n    actualAmountPaid: number | null | undefined;\n\n    assignedTo: UserChild | null | undefined;\n\n    /**\n     * The date and time the bill was assigned to a user\n     */\n    assignedDate: Date | null | undefined;\n\n    /**\n     * The bill's pay source\n     */\n    paySource: string | null | undefined;\n\n    /**\n     * Indicates whom the bill paid\n     */\n    payTo: string | null | undefined;\n\n    /**\n     * The balance of the previous bill\n     */\n    previousBalance: number | null | undefined;\n\n    /**\n     * The amount of balance that was forwarded\n     */\n    balanceForward: number | null | undefined;\n\n    /**\n     * The current charges\n     */\n    currentCharges: number | null | undefined;\n\n    /**\n     * Bill note for this bill\n     */\n    billNote: string | null | undefined;\n\n    reversalDetails: BillReversal | null | undefined;\n\n    /**\n     * Indicates whether this bill is excluded from accruals or not\n     */\n    excludedFromAccruals: boolean | null | undefined;\n\n    /**\n     * Indicates whether this bill is currently being analyzed\n     */\n    analyzing: boolean | null | undefined;\n\n    /**\n     * The net amount of the payment event of the bill\n     */\n    paymentAmount: number | null | undefined;\n\n    /**\n     * The API URL that can be used to download the file of the payment voucher\n     */\n    paymentVoucher: string | null | undefined;\n\n    /**\n     * The API URL that can be used to download the file of the check image\n     */\n    checkImage: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BillReversal {\n    /**\n     * Identifier of the other bill in the reversal pair\n     */\n    referenceBillId: number | null | undefined;\n\n    /**\n     * Indicates whether the reference bill is a reversal or source of a reversal. It is \\\"Source\\\" if the reference bill is the source bill and \\\"Reversal\\\" if the reference bill is the reversal bill\n     */\n    referenceType: string | null | undefined;\n\n    /**\n     * Description of the reversal pair\n     */\n    description: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { ReversalBatchSettings } from './reversalBatchSettings';\n\n\nexport class BillReversalRequest {\n    /**\n     * Bill ids to reverse <span class='property-internal'>Required</span> <span class='property-internal'>Cannot be Empty</span>\n     */\n    billIds: Array<number> | null ;\n\n    batchSettings: ReversalBatchSettings | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BillSignificantlyShorterOrLongerThanPreviousSettingRequest {\n    /**\n     * Percent variance for bill length If SettingStatus is set to Skip and no value is provided, EnergyCAP default will be set <span class='property-internal'>Required when SettingStatus is set to Check, or Hold</span> <span class='property-internal'>List cannot be empty</span>\n     */\n    percentLengthVariance: number | null | undefined;\n\n    /**\n     * The status of the audit setting <span class='property-internal'>One of 'Check', 'Hold', 'Skip'</span> <span class='property-internal'>Required (defined)</span>\n     */\n    settingStatus: string | null | undefined;\n\n    /**\n     * Minimum Bill/Meter Cost.  This audit will run only when the cost meets the specified minimum cost <span class='property-internal'>Required (defined)</span>\n     */\n    minimumCost: number | null | undefined;\n\n    /**\n     * List of Assignees.  Ids of the users the flag should get assigned to when the audit fails. <span class='property-internal'>Required (defined)</span>\n     */\n    assignees: Array<number> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { UserChild } from './userChild';\n\n\nexport class BillSignificantlyShorterOrLongerThanPreviousSettingResponse {\n    /**\n     * Percent variance for bill length If SettingStatus is set to Skip and no value is provided, EnergyCAP default will be set\n     */\n    percentLengthVariance: number | null | undefined;\n\n    /**\n     * The status of the audit setting - Possible values Check, Hold, Skip\n     */\n    settingStatus: string | null | undefined;\n\n    /**\n     * The setting code\n     */\n    settingCode: string | null | undefined;\n\n    /**\n     * A description of the setting\n     */\n    settingDescription: string | null | undefined;\n\n    /**\n     * Minimum Bill/Meter Cost.  This audit wwill run only when the cost meets the specified minimum cost\n     */\n    minimumCost: number | null | undefined;\n\n    /**\n     * List of Assignees.  UserChildDTO representing the users the flag should get assigned to when the audit fails.\n     */\n    assignees: Array<UserChild> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { DynamicPercentageBillSplit } from './dynamicPercentageBillSplit';\nimport { FixedPercentage } from './fixedPercentage';\nimport { FloorAreaSplit } from './floorAreaSplit';\n\n\n/**\n * Defines details for available types of bill split distributions. Only one of the properties may be populated.\n */\nexport class BillSplitDetailsRequest {\n    /**\n     * Populate if setting up a fixed percentage split. You cannot split to the same account and meter combination multiple times within a single version. The destination account cannot be the same as the master account <span class='property-internal'>Cannot be Empty</span> <span class='property-internal'>NULL Valid</span> <span class='property-internal'>Required (defined)</span> <span class='property-internal'>Only one of FixedPercentageSplit, FloorAreaSplit, DynamicPercentageSplit can be set</span>\n     */\n    fixedPercentageSplit: Array<FixedPercentage> | null | undefined;\n\n    /**\n     * Populate if setting up a dynamic percentage split based on the building floor area with weighting factor applied. You cannot split the same account and meter multiple times within a single version. You cannot split to the same account and meter combination multiple times within a single version. The destination account cannot be the same as the master account <span class='property-internal'>Cannot be Empty</span> <span class='property-internal'>NULL Valid</span> <span class='property-internal'>Required (defined)</span> <span class='property-internal'>Only one of FixedPercentageSplit, FloorAreaSplit, DynamicPercentageSplit can be set</span>\n     */\n    floorAreaSplit: Array<FloorAreaSplit> | null | undefined;\n\n    dynamicPercentageSplit: DynamicPercentageBillSplit | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { DistributionVersionResponse } from './distributionVersionResponse';\nimport { DynamicPercentageBillSplitResponse } from './dynamicPercentageBillSplitResponse';\nimport { FixedPercentageResponse } from './fixedPercentageResponse';\nimport { FloorAreaSplitResponse } from './floorAreaSplitResponse';\n\n\n/**\n * Details of the bill split  FixedPercentageSplit, FloorAreaSplit, and DynamicPercentageSplit are mutually exclusive Only 1 of these properties will have a value\n */\nexport class BillSplitDetailsResponse {\n    version: DistributionVersionResponse | null | undefined;\n\n    /**\n     * Populate if setting up a fixed percentage split.\n     */\n    fixedPercentageSplit: Array<FixedPercentageResponse> | null | undefined;\n\n    /**\n     * Populate if setting up a dynamic percentage split based on the building floor area with weighting factor applied.\n     */\n    floorAreaSplit: Array<FloorAreaSplitResponse> | null | undefined;\n\n    dynamicPercentageSplit: DynamicPercentageBillSplitResponse | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AccountChild } from './accountChild';\nimport { MeterChild } from './meterChild';\n\n\nexport class BillSplitParentDetailsResponse {\n    splitParentAccount: AccountChild | null | undefined;\n\n    splitParentMeter: MeterChild | null | undefined;\n\n    /**\n     * First billing period that the bill split was active for\n     */\n    beginPeriod: number | null | undefined;\n\n    /**\n     * Last billing period that the bill split was active for\n     */\n    endPeriod: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { UnitChild } from './unitChild';\n\n\nexport class BillSplitPlaceSizeChild {\n    /**\n     * \n     */\n    placeSizeId: number | null | undefined;\n\n    /**\n     * \n     */\n    beginDate: Date | null | undefined;\n\n    /**\n     * \n     */\n    endDate: Date | null | undefined;\n\n    /**\n     * \n     */\n    value: number | null | undefined;\n\n    unit: UnitChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BillUnexport {\n    /**\n     *  <span class='property-internal'>Required</span> <span class='property-internal'>Cannot be Empty</span>\n     */\n    billIds: Array<number> | null ;\n\n    /**\n     *  <span class='property-internal'>Required</span> <span class='property-internal'>One of 'ap', 'gl', 'payment'</span>\n     */\n    exportMode: string | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BillUnexportOptions {\n    /**\n     *  <span class='property-internal'>Required</span> <span class='property-internal'>One of 'ap', 'gl', 'payment'</span>\n     */\n    exportMode: string | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BillUsage {\n    /**\n     * Number of bills that are manually entered.\n     */\n    manuallyEntered: number | null | undefined;\n\n    /**\n     * Number of bills that are imported.\n     */\n    imported: number | null | undefined;\n\n    /**\n     * Number of bills that are chargeback.\n     */\n    chargeback: number | null | undefined;\n\n    /**\n     * Number of bills that have accrued.\n     */\n    accrual: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AccountTypeChild } from './accountTypeChild';\nimport { BillViewAddressChild } from './billViewAddressChild';\nimport { BillViewVendorChild } from './billViewVendorChild';\nimport { GeneralLedgerChild } from './generalLedgerChild';\n\n\nexport class BillViewAccountChild {\n    /**\n     * \n     */\n    accountId: number | null | undefined;\n\n    /**\n     * \n     */\n    accountCode: string | null | undefined;\n\n    /**\n     * \n     */\n    accountInfo: string | null | undefined;\n\n    /**\n     * \n     */\n    auditEnabled: boolean | null | undefined;\n\n    accountType: AccountTypeChild | null | undefined;\n\n    address: BillViewAddressChild | null | undefined;\n\n    vendor: BillViewVendorChild | null | undefined;\n\n    generalLedger: GeneralLedgerChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BillViewAddressChild {\n    /**\n     * The address type identifier\n     */\n    addressTypeId: number | null | undefined;\n\n    /**\n     * The line 1 of the address\n     */\n    line1: string | null | undefined;\n\n    /**\n     * The line 2 of the address\n     */\n    line2: string | null | undefined;\n\n    /**\n     * The line 2 of the address\n     */\n    line3: string | null | undefined;\n\n    /**\n     * The city of the address\n     */\n    city: string | null | undefined;\n\n    /**\n     * The state of the address\n     */\n    state: string | null | undefined;\n\n    /**\n     * The country of the address\n     */\n    country: string | null | undefined;\n\n    /**\n     * The postal code of the address\n     */\n    postalCode: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CommodityChild } from './commodityChild';\nimport { GeneralLedgerChild } from './generalLedgerChild';\nimport { MeterTypeChild } from './meterTypeChild';\nimport { PlaceChild } from './placeChild';\nimport { RateChild } from './rateChild';\n\n\nexport class BillViewMeterChild {\n    /**\n     * The meter identifier\n     */\n    meterId: number | null | undefined;\n\n    /**\n     * The meter code\n     */\n    meterCode: string | null | undefined;\n\n    /**\n     * The meter info\n     */\n    meterInfo: string | null | undefined;\n\n    meterType: MeterTypeChild | null | undefined;\n\n    commodity: CommodityChild | null | undefined;\n\n    /**\n     * The meter's serial number\n     */\n    serialNumber: string | null | undefined;\n\n    rate: RateChild | null | undefined;\n\n    place: PlaceChild | null | undefined;\n\n    generalLedger: GeneralLedgerChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { BatchChild } from './batchChild';\nimport { BillAccountMeterChild } from './billAccountMeterChild';\nimport { BillCalendarizedHistory } from './billCalendarizedHistory';\nimport { BillHistoryResponse } from './billHistoryResponse';\nimport { BillReversal } from './billReversal';\nimport { BillViewAccountChild } from './billViewAccountChild';\nimport { BillViewMeterChild } from './billViewMeterChild';\nimport { BodylineChild } from './bodylineChild';\nimport { CostConversion } from './costConversion';\nimport { UserChild } from './userChild';\n\n\nexport class BillViewResponse {\n    /**\n     * The bill identifier\n     */\n    billId: number | null | undefined;\n\n    /**\n     * Indicates if the bill has been voided\n     */\n    void: boolean | null | undefined;\n\n    /**\n     * Indicates if the bill is from a vendor\n     */\n    fromVendor: boolean | null | undefined;\n\n    /**\n     * The method used to create the bill Automatic, Manual, Estimated, Simulated, Accrual, or Adjustment\n     */\n    creationMethod: string | null | undefined;\n\n    /**\n     * Indicates if the bill is an accrual\n     */\n    accrual: boolean | null | undefined;\n\n    /**\n     * Indicates if the bill is a reversed accrual\n     */\n    accrualReversed: boolean | null | undefined;\n\n    batch: BatchChild | null | undefined;\n\n    /**\n     * The date the batch was closed\n     */\n    batchEndDate: Date | null | undefined;\n\n    /**\n     * Do y'all need to have a batch code?\n     */\n    hideBatchCode: boolean | null | undefined;\n\n    createdBy: UserChild | null | undefined;\n\n    /**\n     * The date and time the bill was created\n     */\n    createdDate: Date | null | undefined;\n\n    modifiedBy: UserChild | null | undefined;\n\n    /**\n     * The date and time of the most recent modification\n     */\n    modifiedDate: Date | null | undefined;\n\n    /**\n     * Indicates if the bill has been approved\n     */\n    approved: boolean | null | undefined;\n\n    /**\n     * The date and time the bill was approved\n     */\n    approveDate: Date | null | undefined;\n\n    approvedBy: UserChild | null | undefined;\n\n    /**\n     * Indicates if the bill has been split\n     */\n    hasBeenSplit: boolean | null | undefined;\n\n    /**\n     * The date and time the bill was split\n     */\n    wasSplitDate: Date | null | undefined;\n\n    /**\n     * Indicates if the bill is being withheld from bill exports\n     */\n    exportHold: boolean | null | undefined;\n\n    /**\n     * Indicates if the bill has been ap exported\n     */\n    apExported: boolean | null | undefined;\n\n    /**\n     * The date and time the bill was ap exported\n     */\n    apExportDate: Date | null | undefined;\n\n    apExportedBy: UserChild | null | undefined;\n\n    /**\n     * Indicates if the bill has been gl exported\n     */\n    glExported: boolean | null | undefined;\n\n    glExportedBy: UserChild | null | undefined;\n\n    /**\n     * The date and time the bill was exported to gl\n     */\n    glExportDate: Date | null | undefined;\n\n    /**\n     * Indicates if the bill has been exported to bill payment\n     */\n    paymentExported: boolean | null | undefined;\n\n    paymentExportedBy: UserChild | null | undefined;\n\n    /**\n     * The date and time the bill was exported to bill payment\n     */\n    paymentExportDate: Date | null | undefined;\n\n    /**\n     * The number of the check that the bill was paid with\n     */\n    checkNumber: string | null | undefined;\n\n    /**\n     * The date and time of the check\n     */\n    checkDate: Date | null | undefined;\n\n    /**\n     * The payment status of the bill\n     */\n    payStatus: string | null | undefined;\n\n    /**\n     * The date when funds were withdrawn\n     */\n    fundsWithdrawnDate: Date | null | undefined;\n\n    /**\n     * The date and time that the check cleared\n     */\n    clearedDate: Date | null | undefined;\n\n    /**\n     * The payment type of the bill.  For example, Check, VCard, and ACH.\n     */\n    paymentType: string | null | undefined;\n\n    /**\n     * The net amount of the payment event of the bill\n     */\n    paymentAmount: number | null | undefined;\n\n    /**\n     * The API URL that can be used to download the file of the payment voucher\n     */\n    paymentVoucher: string | null | undefined;\n\n    /**\n     * The API URL that can be used to download the file of the check image\n     */\n    checkImage: string | null | undefined;\n\n    /**\n     * The method used to upload the bill to BillCAPture\n     */\n    bcAcquisitionMethod: string | null | undefined;\n\n    /**\n     * The date and time the bill was received by BillCAPture\n     */\n    bcReceived: Date | null | undefined;\n\n    /**\n     * The date and time the bill was sent to the processor\n     */\n    bcSentToProcessing: Date | null | undefined;\n\n    /**\n     * The date and time the bill completed processing\n     */\n    bcReturnedFromProcessing: Date | null | undefined;\n\n    /**\n     * The date and time the bill was finished processing in BillCAPture\n     */\n    bcProcessingComplete: Date | null | undefined;\n\n    account: BillViewAccountChild | null | undefined;\n\n    /**\n     * The bill's begin date\n     */\n    beginDate: Date | null | undefined;\n\n    /**\n     * The bill's end date\n     */\n    endDate: Date | null | undefined;\n\n    /**\n     * The bill's billing period\n     */\n    billingPeriod: number | null | undefined;\n\n    /**\n     * The bill's number of days\n     */\n    days: number | null | undefined;\n\n    /**\n     * The bill's accounting period\n     */\n    accountPeriod: number | null | undefined;\n\n    /**\n     * The bill's accounting period name\n     */\n    accountPeriodName: string | null | undefined;\n\n    /**\n     * Is account period required?\n     */\n    hideAccountPeriod: boolean | null | undefined;\n\n    /**\n     * Is account year required?  What is it?\n     */\n    hideAccountYear: boolean | null | undefined;\n\n    /**\n     * The bill's total cost in the system currency. The system currency is the reporting/global currency unit.\n     */\n    totalCost: number | null | undefined;\n\n    /**\n     * The bill's total cost in the source currency. The source currency is the native currency unit.\n     */\n    totalSourceCost: number | null | undefined;\n\n    costConversion: CostConversion | null | undefined;\n\n    /**\n     * The bill's balance\n     */\n    balance: number | null | undefined;\n\n    /**\n     * Indicates if the bill is estimated\n     */\n    estimated: boolean | null | undefined;\n\n    /**\n     * Is estimated flag required?\n     */\n    hideEstimated: boolean | null | undefined;\n\n    /**\n     * The date of the billing statement\n     */\n    statementDate: Date | null | undefined;\n\n    /**\n     * Is statement date required?\n     */\n    hideStatementDate: boolean | null | undefined;\n\n    /**\n     * The date and time the bill is due\n     */\n    dueDate: Date | null | undefined;\n\n    /**\n     * Is due date required?\n     */\n    hideDueDate: boolean | null | undefined;\n\n    /**\n     * The bill's invoice number\n     */\n    invoiceNumber: string | null | undefined;\n\n    /**\n     * Is Invoice Number Required?\n     */\n    hideInvoiceNumber: boolean | null | undefined;\n\n    /**\n     * The bill's control code\n     */\n    controlCode: string | null | undefined;\n\n    /**\n     * Is control code required?\n     */\n    hideControlCode: boolean | null | undefined;\n\n    /**\n     * The fully qualified url to the bill image\n     */\n    billImageUrl: string | null | undefined;\n\n    /**\n     * Bill note\n     */\n    billNote: string | null | undefined;\n\n    /**\n     * The bill's next reading date\n     */\n    nextReading: Date | null | undefined;\n\n    /**\n     * Is next reading date required?\n     */\n    hideNextReading: boolean | null | undefined;\n\n    /**\n     * Bill ID for the bill on this account that immediately precedes this bill (used for navigating back to the prior bill)\n     */\n    priorBillId: number | null | undefined;\n\n    /**\n     * Bill ID for the bill on this account that immediately follows this bill (used for navigating to the next bill)\n     */\n    nextBillId: number | null | undefined;\n\n    /**\n     * The bill history\n     */\n    billHistory: Array<BillHistoryResponse> | null | undefined;\n\n    /**\n     * The list of meters on the bill\n     */\n    meters: Array<BillViewMeterChild> | null | undefined;\n\n    /**\n     * The list of body lines on the bill\n     */\n    bodyLines: Array<BodylineChild> | null | undefined;\n\n    /**\n     * The list of account-meter summaries on the bill\n     */\n    billAccountMeters: Array<BillAccountMeterChild> | null | undefined;\n\n    /**\n     * Calendarized history information for the account\n     */\n    calendarizedHistory: Array<BillCalendarizedHistory> | null | undefined;\n\n    reversalDetails: BillReversal | null | undefined;\n\n    /**\n     * Indicates whether this bill is excluded from accruals or not\n     */\n    excludedFromAccruals: boolean | null | undefined;\n\n    /**\n     * Indicates whether this bill is currently being analyzed\n     */\n    analyzing: boolean | null | undefined;\n\n    /**\n     * The latest date the payment was canceled\n     */\n    paymentCanceledDate: Date | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { BillViewAddressChild } from './billViewAddressChild';\n\n\nexport class BillViewVendorChild {\n    /**\n     * The vendor identifier\n     */\n    vendorId: number | null | undefined;\n\n    /**\n     * The vendor code\n     */\n    vendorCode: string | null | undefined;\n\n    /**\n     * The vendor info\n     */\n    vendorInfo: string | null | undefined;\n\n    address: BillViewAddressChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class BillWorkflowSettings {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BillWorkflowSettingsClassPermission {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { UnitChild } from './unitChild';\n\n\nexport class BillingPeriodCostUnitChild {\n    /**\n     * The total cost.\n     */\n    cost: number | null | undefined;\n\n    unit: UnitChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { UnitChild } from './unitChild';\n\n\n/**\n * This data is not currently being used, it has been included for completeness.\n */\nexport class BillingPeriodCostUnitDeltaChild {\n    /**\n     * The change in total cost from the current billing period.\n     */\n    delta: number | null | undefined;\n\n    /**\n     * The total cost.\n     */\n    cost: number | null | undefined;\n\n    unit: UnitChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { BillingPeriodCostUnitChild } from './billingPeriodCostUnitChild';\nimport { BillingPeriodUseUnitChild } from './billingPeriodUseUnitChild';\n\n\nexport class BillingPeriodUseCostChild {\n    /**\n     * The billing period that the data represents. Will be the current billing period, the same year prior billing period,  or the same period prior year billing period.\n     */\n    billingPeriod: number | null | undefined;\n\n    /**\n     * The number of bills in the current billing period.\n     */\n    numberOfBillsInPeriod: number | null | undefined;\n\n    /**\n     * The number of bills in the current billing period that were generated by this workflow step.\n     */\n    numberOfBillsInPeriodFromWorkflowStep: number | null | undefined;\n\n    use: BillingPeriodUseUnitChild | null | undefined;\n\n    cost: BillingPeriodCostUnitChild | null | undefined;\n\n    /**\n     * The unit cost for the specified billing period.\n     */\n    unitCost: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { BillingPeriodCostUnitDeltaChild } from './billingPeriodCostUnitDeltaChild';\nimport { BillingPeriodUseUnitDeltaChild } from './billingPeriodUseUnitDeltaChild';\n\n\nexport class BillingPeriodUseCostDeltaChild {\n    /**\n     * The billing period that the data represents. Will be the current billing period, the same year prior billing period,  or the same period prior year billing period.\n     */\n    billingPeriod: number | null | undefined;\n\n    use: BillingPeriodUseUnitDeltaChild | null | undefined;\n\n    cost: BillingPeriodCostUnitDeltaChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { UnitChild } from './unitChild';\n\n\nexport class BillingPeriodUseUnitChild {\n    /**\n     * The total common use.\n     */\n    use: number | null | undefined;\n\n    unit: UnitChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { UnitChild } from './unitChild';\n\n\nexport class BillingPeriodUseUnitDeltaChild {\n    /**\n     * The change in common use from the current billing period.\n     */\n    delta: number | null | undefined;\n\n    /**\n     * The total common use.\n     */\n    use: number | null | undefined;\n\n    unit: UnitChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class BillsAndBatches {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    create: boolean | null | undefined;\n\n    /**\n     * \n     */\n    edit: boolean | null | undefined;\n\n    /**\n     * \n     */\n    delete: boolean | null | undefined;\n\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BillsAndBatchesClassPermission {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    create: boolean | null | undefined;\n\n    /**\n     * \n     */\n    edit: boolean | null | undefined;\n\n    /**\n     * \n     */\n    delete: boolean | null | undefined;\n\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class BillsModule {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BillsModuleClassPermission {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AccountChild } from './accountChild';\nimport { CostCenterChild } from './costCenterChild';\nimport { UnitChild } from './unitChild';\n\n\nexport class BillsOverdueFromVendorResponse {\n    account: AccountChild | null | undefined;\n\n    costCenter: CostCenterChild | null | undefined;\n\n    /**\n     * \n     */\n    endDate: Date | null | undefined;\n\n    /**\n     * \n     */\n    directCost: number | null | undefined;\n\n    /**\n     * \n     */\n    days: number | null | undefined;\n\n    /**\n     * \n     */\n    gapDays: number | null | undefined;\n\n    costUnit: UnitChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { GeneralLedgerChild } from './generalLedgerChild';\nimport { ObservationTypeChild } from './observationTypeChild';\nimport { UnitChild } from './unitChild';\n\n\nexport class BodylineChild {\n    /**\n     * The bodyline identifier\n     */\n    bodyLineId: number | null | undefined;\n\n    /**\n     * The account identifier\n     */\n    accountId: number | null | undefined;\n\n    /**\n     * The meter identifier\n     */\n    meterId: number | null | undefined;\n\n    /**\n     * The display order\n     */\n    displayOrder: number | null | undefined;\n\n    /**\n     * The caption\n     */\n    caption: string | null | undefined;\n\n    /**\n     * The bodyline's value\n     */\n    value: number | null | undefined;\n\n    /**\n     * \n     */\n    valueIsInfoOnly: boolean | null | undefined;\n\n    /**\n     * The cost attributed to the bodyline\n     */\n    cost: number | null | undefined;\n\n    /**\n     * Is the cost value counted towards the overall total cost or info only\n     */\n    costIsInfoOnly: boolean | null | undefined;\n\n    valueUnit: UnitChild | null | undefined;\n\n    costUnit: UnitChild | null | undefined;\n\n    observationType: ObservationTypeChild | null | undefined;\n\n    generalLedger: GeneralLedgerChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AccountChild } from './accountChild';\nimport { CommodityChild } from './commodityChild';\nimport { GeneralLedgerChild } from './generalLedgerChild';\nimport { MeterChild } from './meterChild';\nimport { ObservationTypeChild } from './observationTypeChild';\nimport { UnitChild } from './unitChild';\n\n\nexport class BodylineResponse {\n    /**\n     * The bodyline identifier\n     */\n    bodylineId: number | null | undefined;\n\n    /**\n     * The bill identifier\n     */\n    billId: number | null | undefined;\n\n    /**\n     * The bodyline's value\n     */\n    value: number | null | undefined;\n\n    /**\n     * The cost attributed to the bodyline\n     */\n    cost: number | null | undefined;\n\n    /**\n     * The display order\n     */\n    displayOrder: number | null | undefined;\n\n    /**\n     * The caption\n     */\n    caption: string | null | undefined;\n\n    /**\n     * The help tag\n     */\n    helpTag: string | null | undefined;\n\n    commodity: CommodityChild | null | undefined;\n\n    meter: MeterChild | null | undefined;\n\n    account: AccountChild | null | undefined;\n\n    generalLedger: GeneralLedgerChild | null | undefined;\n\n    observationType: ObservationTypeChild | null | undefined;\n\n    unit: UnitChild | null | undefined;\n\n    costUnit: UnitChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BudgetCreate {\n    /**\n     * The budget name <span class='property-internal'>Max length of 50</span> <span class='property-internal'>Required</span>\n     */\n    budgetInfo: string | null ;\n\n    /**\n     * The notes attached to this budget <span class='property-internal'>Max length of 255</span>\n     */\n    note: string | null | undefined;\n\n    /**\n     * The fiscal year this budget represents <span class='property-internal'>Required</span>\n     */\n    budgetFiscalYear: number | null ;\n\n    /**\n     * Number of years of data to include in the budget calculations <span class='property-internal'>Required</span>\n     */\n    numberOfDataYears: number | null ;\n\n    /**\n     * The last period that should be included in the budget calculations (inclusive) <span class='property-internal'>Required</span>\n     */\n    dataYearsEndPeriod: number | null ;\n\n    /**\n     * The calendarization method this budget will use <span class='property-internal'>Required</span> <span class='property-internal'>One of '1', '2'</span> <span class='property-internal'>Case sensitive</span>\n     */\n    budgetPeriodTypeId: number | null ;\n\n    /**\n     * The type of data this budget will use in its calculations.  If BudgetPeriodTypeId is set to 2 (Accounting Period), this must be set to 1 (Billing Period) <span class='property-internal'>Required</span> <span class='property-internal'>One of '2', '1'</span> <span class='property-internal'>Case sensitive</span>\n     */\n    budgetDataTypeId: number | null ;\n\n    /**\n     * The method used to calculate the baseline budget values. If NumberOfDataYears is 1, this value is ignored and the data from the selected year is used <span class='property-internal'>Required</span> <span class='property-internal'>One of '2', '3', '4', '1'</span> <span class='property-internal'>Case sensitive</span>\n     */\n    budgetUsageMethodId: number | null ;\n\n    /**\n     * Flag to indicate if inactive accounts should be included in the budget calculations <span class='property-internal'>Required</span>\n     */\n    includeInactiveAccounts: boolean | null ;\n\n    /**\n     * Flag to indicate if inactive meters should be included in the budget calculations <span class='property-internal'>Required</span>\n     */\n    includeInactiveMeters: boolean | null ;\n\n    /**\n     * Flag to indicate if inactive account/meter relationships should be included in the budget calculations <span class='property-internal'>Required</span>\n     */\n    includeInactiveAccountMeters: boolean | null ;\n\n    /**\n     * Flag to indicate if internal chargeback bills should be included in the budget calculations <span class='property-internal'>Required</span>\n     */\n    includeChargebackBills: boolean | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BudgetDataType {\n    /**\n     * The budget data type identifier\n     */\n    budgetDataTypeId: number | null | undefined;\n\n    /**\n     * The budget data type name\n     */\n    budgetDataTypeInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BudgetEdit {\n    /**\n     * The budget name <span class='property-internal'>Must be between 0 and 50 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    budgetInfo: string | null | undefined;\n\n    /**\n     * Notes for the budget <span class='property-internal'>Must be between 0 and 255 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    note: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BudgetPeriodType {\n    /**\n     * The budget period type identifier\n     */\n    budgetPeriodTypeId: number | null | undefined;\n\n    /**\n     * The budget period type name\n     */\n    budgetPeriodTypeInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { BudgetDataType } from './budgetDataType';\nimport { BudgetPeriodType } from './budgetPeriodType';\nimport { BudgetUsageMethod } from './budgetUsageMethod';\nimport { TaskChild } from './taskChild';\nimport { UserChild } from './userChild';\n\n\nexport class BudgetResponse {\n    /**\n     * The budget identifier\n     */\n    budgetId: number | null | undefined;\n\n    /**\n     * The budget name\n     */\n    budgetInfo: string | null | undefined;\n\n    /**\n     * The budget fiscal year\n     */\n    budgetYear: number | null | undefined;\n\n    /**\n     * The number of versions associated with this budget\n     */\n    numberOfVersions: number | null | undefined;\n\n    /**\n     * The highest version number associated with this budget\n     */\n    maxVersionNumber: number | null | undefined;\n\n    createdBy: UserChild | null | undefined;\n\n    /**\n     * The date when the version was created\n     */\n    createdDate: Date | null | undefined;\n\n    /**\n     * The total budget of the active version\n     */\n    activeTotalBudget: number | null | undefined;\n\n    /**\n     * Notes for the budget\n     */\n    notes: string | null | undefined;\n\n    budgetPeriodType: BudgetPeriodType | null | undefined;\n\n    budgetDataType: BudgetDataType | null | undefined;\n\n    /**\n     * Number of years used to generate the budget\n     */\n    yearsOfData: number | null | undefined;\n\n    /**\n     * Ending period for the budget\n     */\n    endPeriod: number | null | undefined;\n\n    budgetUsageMethod: BudgetUsageMethod | null | undefined;\n\n    /**\n     * Should the budget include inactive accounts\n     */\n    includeInactiveAccounts: boolean | null | undefined;\n\n    /**\n     * Should the budget include inactive meters\n     */\n    includeInactiveMeters: boolean | null | undefined;\n\n    /**\n     * Should the budget include inactive account meters\n     */\n    includeInactiveAccountMeters: boolean | null | undefined;\n\n    /**\n     * Should the budget include chargeback bills\n     */\n    includeChargebackBills: boolean | null | undefined;\n\n    taskData: TaskChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BudgetUsageMethod {\n    /**\n     * The budget usage method identifier\n     */\n    budgetUsageMethodId: number | null | undefined;\n\n    /**\n     * The budget usage method name\n     */\n    budgetUsageMethodInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BudgetVersionCreate {\n    /**\n     * The budget version the new version will be based off of <span class='property-internal'>Required</span>\n     */\n    baseBudgetVersionId: number | null ;\n\n    /**\n     * Name of the new budget version <span class='property-internal'>Required</span>\n     */\n    budgetVersionInfo: string | null ;\n\n    /**\n     * Notes for the new budget version\n     */\n    budgetVersionNote: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BudgetVersionEdit {\n    /**\n     * The budget version name <span class='property-internal'>Must be between 0 and 50 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    budgetVersionInfo: string | null | undefined;\n\n    /**\n     * Notes for the budget <span class='property-internal'>Must be between 0 and 255 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    notes: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { UserChild } from './userChild';\n\n\nexport class BudgetVersionResponse {\n    /**\n     * The budget version identifier\n     */\n    budgetVersionId: number | null | undefined;\n\n    /**\n     * The budget identifier\n     */\n    budgetId: number | null | undefined;\n\n    /**\n     * The budget version name\n     */\n    budgetVersionInfo: string | null | undefined;\n\n    /**\n     * The budget version number\n     */\n    versionNumber: number | null | undefined;\n\n    /**\n     * If this is the active budget version\n     */\n    active: boolean | null | undefined;\n\n    /**\n     * Flag that shows if this budget version has been modified beyond its initial state using budget worksheets\n     */\n    hasBeenModified: boolean | null | undefined;\n\n    modifiedBy: UserChild | null | undefined;\n\n    /**\n     * The date when the version was modified\n     */\n    modifiedDate: Date | null | undefined;\n\n    /**\n     * The total budget of the budget version\n     */\n    totalBudget: number | null | undefined;\n\n    /**\n     * Notes for the budget\n     */\n    notes: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { ValueWithUnit } from './valueWithUnit';\n\n\nexport class BudgetVersionSummary {\n    /**\n     * Period\n     */\n    period: number | null | undefined;\n\n    use: ValueWithUnit | null | undefined;\n\n    /**\n     * The cost\n     */\n    cost: number | null | undefined;\n\n    /**\n     * The average unit cost\n     */\n    averageUnitCost: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { BudgetVersionResponse } from './budgetVersionResponse';\nimport { BudgetVersionSummary } from './budgetVersionSummary';\n\n\nexport class BudgetVersionSummaryResponse {\n    budgetVersion: BudgetVersionResponse | null | undefined;\n\n    total: BudgetVersionSummary | null | undefined;\n\n    /**\n     * The data details\n     */\n    dataDetails: Array<BudgetVersionSummary> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class BudgetsAndBudgetVersions {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    create: boolean | null | undefined;\n\n    /**\n     * \n     */\n    edit: boolean | null | undefined;\n\n    /**\n     * \n     */\n    delete: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BudgetsAndBudgetVersionsClassPermission {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    create: boolean | null | undefined;\n\n    /**\n     * \n     */\n    edit: boolean | null | undefined;\n\n    /**\n     * \n     */\n    delete: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class BuildingAndMeterGroups {\n    /**\n     * \n     */\n    create: boolean | null | undefined;\n\n    /**\n     * \n     */\n    edit: boolean | null | undefined;\n\n    /**\n     * \n     */\n    delete: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BuildingAndMeterGroupsClassPermission {\n    /**\n     * \n     */\n    create: boolean | null | undefined;\n\n    /**\n     * \n     */\n    edit: boolean | null | undefined;\n\n    /**\n     * \n     */\n    delete: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class BuildingsAndMetersModule {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class BuildingsAndMetersModuleActualData {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BuildingsAndMetersModuleActualDataClassPermission {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class BuildingsAndMetersModuleBudgets {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BuildingsAndMetersModuleBudgetsClassPermission {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class BuildingsAndMetersModuleCalendarizedData {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BuildingsAndMetersModuleCalendarizedDataClassPermission {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BuildingsAndMetersModuleClassPermission {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class BuildingsAndMetersModuleMeterIntervalData {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BuildingsAndMetersModuleMeterIntervalDataClassPermission {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class BuildingsAndMetersModuleNormalizedData {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BuildingsAndMetersModuleNormalizedDataClassPermission {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class BuildingsAndMetersModuleSavings {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BuildingsAndMetersModuleSavingsClassPermission {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class BuildingsAndMetersModuleSustainability {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BuildingsAndMetersModuleSustainabilityClassPermission {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class BuildingsAndOrganizations {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    create: boolean | null | undefined;\n\n    /**\n     * \n     */\n    edit: boolean | null | undefined;\n\n    /**\n     * \n     */\n    delete: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BuildingsAndOrganizationsClassPermission {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    create: boolean | null | undefined;\n\n    /**\n     * \n     */\n    edit: boolean | null | undefined;\n\n    /**\n     * \n     */\n    delete: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { FilterEdit } from './filterEdit';\n\n\nexport class BulkBaselineProcessorRequest {\n    /**\n     * Determines if weather adjustments are applied to the reprocessed baseline or not Defaults to \\\"false\\\"\n     */\n    ignoreWeatherAdjustments: boolean | null | undefined;\n\n    /**\n     * Filter criteria which determine the meters whose cost avoidance baselines will be reprocessed <span class='property-internal'>Cannot be Empty</span>\n     */\n    filters: Array<FilterEdit> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { ArcadiaAccount } from './arcadiaAccount';\nimport { ArcadiaProvider } from './arcadiaProvider';\n\n\nexport class BulkImportArcadiaCredentialRequest {\n    /**\n     * \n     */\n    correlationId: string | null | undefined;\n\n    /**\n     * \n     */\n    createdAt: Date | null | undefined;\n\n    /**\n     * \n     */\n    createdBy: string | null | undefined;\n\n    /**\n     * \n     */\n    customerGivenWebsite: string | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Required</span>\n     */\n    id: string | null ;\n\n    /**\n     * \n     */\n    isAccessible: boolean | null | undefined;\n\n    /**\n     * \n     */\n    isActive: boolean | null | undefined;\n\n    /**\n     * \n     */\n    isCustomerActionRequired: boolean | null | undefined;\n\n    /**\n     * \n     */\n    isThirdPartyPortal: boolean | null | undefined;\n\n    /**\n     * \n     */\n    lastModifiedAt: Date | null | undefined;\n\n    /**\n     * \n     */\n    lastModifiedBy: string | null | undefined;\n\n    /**\n     * \n     */\n    lastSuccessfulMultiFactorAuthenticationOptOutAt: Date | null | undefined;\n\n    /**\n     * \n     */\n    multiFactorAuthenticationOptOutStatus: string | null | undefined;\n\n    /**\n     * \n     */\n    nextScheduledAccountRunAt: Date | null | undefined;\n\n    provider: ArcadiaProvider | null ;\n\n    /**\n     * \n     */\n    status: string | null | undefined;\n\n    /**\n     * \n     */\n    statusDetail: string | null | undefined;\n\n    /**\n     * \n     */\n    totalAccounts: number | null | undefined;\n\n    /**\n     * \n     */\n    username: string | null | undefined;\n\n    /**\n     * \n     */\n    username2: string | null | undefined;\n\n    /**\n     * \n     */\n    username3: string | null | undefined;\n\n    /**\n     * \n     */\n    username4: string | null | undefined;\n\n    /**\n     * \n     */\n    website: string | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Required</span>\n     */\n    accounts: Array<ArcadiaAccount> | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class BulkImportArcadiaCredentialsResponse {\n    /**\n     * \n     */\n    credentialsCreated: number | null | undefined;\n\n    /**\n     * \n     */\n    credentialsUpdated: number | null | undefined;\n\n    /**\n     * \n     */\n    credentialsDeleted: number | null | undefined;\n\n    /**\n     * \n     */\n    accountsCreated: number | null | undefined;\n\n    /**\n     * \n     */\n    accountsUpdated: number | null | undefined;\n\n    /**\n     * \n     */\n    accountsDeleted: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { FilterEdit } from './filterEdit';\n\n\nexport class BulkMeterCostAvoidanceSettings {\n    /**\n     * Indicates whether or not the cost avoidance processor will attempt cooling adjustments <span class='property-internal'>Required (defined)</span> <span class='property-internal'>At least one of AttemptCoolingAdjustment, AttemptHeatingAdjustment, NumBaselineMonths, BaselineStartDate, CoolingNeededAbove, HeatingNeededBelow, IncludeMeterInCostAvoidance, SavingsStartDate must not be null</span>\n     */\n    attemptCoolingAdjustment: boolean | null | undefined;\n\n    /**\n     * Indicates whether or not the cost avoidance processor will attempt heating adjustments <span class='property-internal'>Required (defined)</span> <span class='property-internal'>At least one of AttemptCoolingAdjustment, AttemptHeatingAdjustment, NumBaselineMonths, BaselineStartDate, CoolingNeededAbove, HeatingNeededBelow, IncludeMeterInCostAvoidance, SavingsStartDate must not be null</span>\n     */\n    attemptHeatingAdjustment: boolean | null | undefined;\n\n    /**\n     * Determines number of months of data included in the meter's cost avoidance baseline <span class='property-internal'>Must be between 12 and 36</span> <span class='property-internal'>Required (defined)</span> <span class='property-internal'>At least one of AttemptCoolingAdjustment, AttemptHeatingAdjustment, NumBaselineMonths, BaselineStartDate, CoolingNeededAbove, HeatingNeededBelow, IncludeMeterInCostAvoidance, SavingsStartDate must not be null</span>\n     */\n    numBaselineMonths: number | null | undefined;\n\n    /**\n     * Determines the start date of the meter's cost avoidance baseline <span class='property-internal'>Must be between 1899-12-31 and 3000-01-01</span> <span class='property-internal'>Required (defined)</span> <span class='property-internal'>At least one of AttemptCoolingAdjustment, AttemptHeatingAdjustment, NumBaselineMonths, BaselineStartDate, CoolingNeededAbove, HeatingNeededBelow, IncludeMeterInCostAvoidance, SavingsStartDate must not be null</span>\n     */\n    baselineStartDate: Date | null | undefined;\n\n    /**\n     * Determines the external temperature above which cooling is expected to take place <span class='property-internal'>Must be greater than or equal to HeatingNeededBelow</span> <span class='property-internal'>Required (defined)</span> <span class='property-internal'>At least one of AttemptCoolingAdjustment, AttemptHeatingAdjustment, NumBaselineMonths, BaselineStartDate, CoolingNeededAbove, HeatingNeededBelow, IncludeMeterInCostAvoidance, SavingsStartDate must not be null</span>\n     */\n    coolingNeededAbove: number | null | undefined;\n\n    /**\n     * Determines the external temperature below which heating is expected to take place <span class='property-internal'>Required (defined)</span> <span class='property-internal'>At least one of AttemptCoolingAdjustment, AttemptHeatingAdjustment, NumBaselineMonths, BaselineStartDate, CoolingNeededAbove, HeatingNeededBelow, IncludeMeterInCostAvoidance, SavingsStartDate must not be null</span>\n     */\n    heatingNeededBelow: number | null | undefined;\n\n    /**\n     * Determines whether or not to include the meter in cost avoidance processing <span class='property-internal'>Required (defined)</span> <span class='property-internal'>At least one of AttemptCoolingAdjustment, AttemptHeatingAdjustment, NumBaselineMonths, BaselineStartDate, CoolingNeededAbove, HeatingNeededBelow, IncludeMeterInCostAvoidance, SavingsStartDate must not be null</span>\n     */\n    includeMeterInCostAvoidance: boolean | null | undefined;\n\n    /**\n     * Determines the start date after which energy and cost savings are expected to accrue <span class='property-internal'>Must be between 1899-12-31 and 3000-01-01</span> <span class='property-internal'>Required (defined)</span> <span class='property-internal'>At least one of AttemptCoolingAdjustment, AttemptHeatingAdjustment, NumBaselineMonths, BaselineStartDate, CoolingNeededAbove, HeatingNeededBelow, IncludeMeterInCostAvoidance, SavingsStartDate must not be null</span>\n     */\n    savingsStartDate: Date | null | undefined;\n\n    /**\n     * Filter criteria which determine the meters whose cost avoidance settings will be updated <span class='property-internal'>Required (defined)</span>\n     */\n    filters: Array<FilterEdit> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { FilterEdit } from './filterEdit';\n\n\nexport class CalculateSavingsRequest {\n    /**\n     * Determines which option will be used to select the bills for this instance of the cost avoidance processor to process - \\\"AllBills\\\" means all bills will be processed - \\\"ModifiedOrNotProcessed\\\" means only new bills or bills which have been modified since the last time cost avoidance was run will be processed - \\\"BillingPeriod\\\" means that only bills with a billing period which is greater than or equal to the provided billing period will be processed <span class='property-internal'>One of 'AllBills', 'ModifiedOrNotProcessed', 'BillingPeriod'</span>\n     */\n    billSelectionOption: string | null | undefined;\n\n    /**\n     * When BillSelectionOption is 'BillingPeriod', this defines the billing period to be used to target bills for processing <span class='property-internal'>Valid billing period between 190001 and 300001</span> <span class='property-internal'>NULL Valid</span> <span class='property-internal'>Required when BillSelectionOption is set to BillingPeriod, case sensitive.</span>\n     */\n    billingPeriod: number | null | undefined;\n\n    /**\n     * Allow the user to optionally exclude one or all special adjustments <span class='property-internal'>One of 'SkipAll', 'SkipOne', 'SkipNone'</span>\n     */\n    skipSpecialAdjustmentOption: string | null | undefined;\n\n    /**\n     * During cost avoidance processing, the special adjustment having the provided special adjustment type ID will not be applied (only if SkipSpecialAdjustmentOption = \\\"SkipOne\\\") <span class='property-internal'>Required when SkipSpecialAdjustmentOption is set to SkipOne, case sensitive.</span>\n     */\n    specialAdjustmentTypeIdToIgnore: number | null | undefined;\n\n    /**\n     * Filter criteria which determine the meters whose savings will be reprocessed\n     */\n    filters: Array<FilterEdit> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CalculationRequest } from './calculationRequest';\nimport { CalendarizedCalculationRequest } from './calendarizedCalculationRequest';\nimport { CopyMeterRequest } from './copyMeterRequest';\nimport { FixedUnitCostRequest } from './fixedUnitCostRequest';\n\n\n/**\n * Defines how use is calculated for a calculated bill distribution\n */\nexport class CalculatedBillCostRequest {\n    /**\n     * Apply the meter's current rate when calculating bill cost \\\"true\\\" is the only valid value for this property <span class='property-internal'>One of 'True'</span> <span class='property-internal'>Case sensitive</span> <span class='property-internal'>Required (defined)</span> <span class='property-internal'>Only one of UseCurrentMetersRateSchedule, FixedUnitCost, UnitCostMeterId, FixedAmount, CopyCostFromMeter, CostCalculation, CalendarizedCostCalculation can be set</span>\n     */\n    useCurrentMetersRateSchedule: boolean | null | undefined;\n\n    fixedUnitCost: FixedUnitCostRequest | null | undefined;\n\n    /**\n     * MeterId from where to get the unit cost <span class='property-internal'>Required (defined)</span> <span class='property-internal'>Only one of UseCurrentMetersRateSchedule, FixedUnitCost, UnitCostMeterId, FixedAmount, CopyCostFromMeter, CostCalculation, CalendarizedCostCalculation can be set</span>\n     */\n    unitCostMeterId: number | null | undefined;\n\n    /**\n     * Use a fixed amount for bill cost <span class='property-info'>Max scale of 2</span> <span class='property-internal'>NULL Valid</span> <span class='property-internal'>Required (defined)</span> <span class='property-internal'>Only one of UseCurrentMetersRateSchedule, FixedUnitCost, UnitCostMeterId, FixedAmount, CopyCostFromMeter, CostCalculation, CalendarizedCostCalculation can be set</span>\n     */\n    fixedAmount: number | null | undefined;\n\n    copyCostFromMeter: CopyMeterRequest | null | undefined;\n\n    costCalculation: CalculationRequest | null | undefined;\n\n    calendarizedCostCalculation: CalendarizedCalculationRequest | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CalculationResponse } from './calculationResponse';\nimport { CalendarizedCalculationResponse } from './calendarizedCalculationResponse';\nimport { CopyFromMeterResponse } from './copyFromMeterResponse';\nimport { FixedAmountResponse } from './fixedAmountResponse';\nimport { MeterChild } from './meterChild';\nimport { RateChildResponse } from './rateChildResponse';\n\n\n/**\n * Definition of how a calculated bill will get its cost\n */\nexport class CalculatedBillCostResponse {\n    rateSchedule: RateChildResponse | null | undefined;\n\n    fixedUnitCost: FixedAmountResponse | null | undefined;\n\n    unitCostFromMeter: MeterChild | null | undefined;\n\n    /**\n     * Use a fixed amount for bill cost\n     */\n    fixedAmount: number | null | undefined;\n\n    copyCostFromMeter: CopyFromMeterResponse | null | undefined;\n\n    costCalculation: CalculationResponse | null | undefined;\n\n    calendarizedCostCalculation: CalendarizedCalculationResponse | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { FixedDemandRequest } from './fixedDemandRequest';\n\n\nexport class CalculatedBillDemandRequest {\n    /**\n     * Use channel data readings to calculate bill demand <span class='property-internal'>Required (defined)</span> <span class='property-internal'>Only one of ReadingsChannelId, ReadingsEsaChannelId, FixedDemand, UseWatticsDataPoint can be set</span>\n     */\n    readingsChannelId: number | null | undefined;\n\n    /**\n     * Use ESA channel data readings to calculate bill demand <span class='property-internal'>Required (defined)</span> <span class='property-internal'>Only one of ReadingsChannelId, ReadingsEsaChannelId, FixedDemand, UseWatticsDataPoint can be set</span>\n     */\n    readingsEsaChannelId: number | null | undefined;\n\n    fixedDemand: FixedDemandRequest | null | undefined;\n\n    /**\n     * Use SmartAnalytics (Wattics) data readings to calculate bill demand <span class='property-internal'>Required (defined)</span> <span class='property-internal'>Only one of ReadingsChannelId, ReadingsEsaChannelId, FixedDemand, UseWatticsDataPoint can be set</span>\n     */\n    useWatticsDataPoint: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { ChannelChildWithObservationType } from './channelChildWithObservationType';\nimport { EsaChannelChildWithObservationType } from './esaChannelChildWithObservationType';\nimport { FixedAmountResponse } from './fixedAmountResponse';\nimport { WatticsDataPointChild } from './watticsDataPointChild';\n\n\nexport class CalculatedBillDemandResponse {\n    readingsFromChannel: ChannelChildWithObservationType | null | undefined;\n\n    readingsFromEsaChannel: EsaChannelChildWithObservationType | null | undefined;\n\n    fixedDemand: FixedAmountResponse | null | undefined;\n\n    readingsFromWatticsDataPoint: WatticsDataPointChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CalculatedBillCostResponse } from './calculatedBillCostResponse';\nimport { CalculatedBillDemandResponse } from './calculatedBillDemandResponse';\nimport { CalculatedBillUseResponse } from './calculatedBillUseResponse';\nimport { DistributionVersionResponse } from './distributionVersionResponse';\nimport { GenericBodylineResponse } from './genericBodylineResponse';\n\n\n/**\n * Response object containing all the details related to calculated bill setup for a meter. Includes use, cost, meter line items, and account line items.\n */\nexport class CalculatedBillDetailsResponse {\n    version: DistributionVersionResponse | null | undefined;\n\n    use: CalculatedBillUseResponse | null | undefined;\n\n    cost: CalculatedBillCostResponse | null | undefined;\n\n    demand: CalculatedBillDemandResponse | null | undefined;\n\n    /**\n     * Additional meter bodylines to be added to the bill The line items are returned in the correct display order\n     */\n    meterLineItems: Array<GenericBodylineResponse> | null | undefined;\n\n    /**\n     * Additional account bodylines to be added to the bill The line items are returned in the correct display order\n     */\n    accountLineItems: Array<GenericBodylineResponse> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CalculationRequest } from './calculationRequest';\nimport { CalendarizedCalculationRequest } from './calendarizedCalculationRequest';\nimport { CopyMeterRequest } from './copyMeterRequest';\nimport { FixedUseRequest } from './fixedUseRequest';\n\n\n/**\n * Defines how use is calculated for a calculated bill distribution\n */\nexport class CalculatedBillUseRequest {\n    /**\n     * Use monthly channel data readings to calculate bill use <span class='property-internal'>Required (defined)</span> <span class='property-internal'>Only one of ReadingsChannelId, ReadingsEsaChannelId, FixedAmount, CopyUseFromMeter, UseCalculation, CalendarizedUseCalculation, UseWatticsDataPoint can be set</span>\n     */\n    readingsChannelId: number | null | undefined;\n\n    /**\n     * Use ESA channel data readings to calculate bill use <span class='property-internal'>Required (defined)</span> <span class='property-internal'>Only one of ReadingsChannelId, ReadingsEsaChannelId, FixedAmount, CopyUseFromMeter, UseCalculation, CalendarizedUseCalculation, UseWatticsDataPoint can be set</span>\n     */\n    readingsEsaChannelId: number | null | undefined;\n\n    fixedAmount: FixedUseRequest | null | undefined;\n\n    copyUseFromMeter: CopyMeterRequest | null | undefined;\n\n    useCalculation: CalculationRequest | null | undefined;\n\n    calendarizedUseCalculation: CalendarizedCalculationRequest | null | undefined;\n\n    /**\n     * Use SmartAnalytics (Wattics) data readings to calculate bill use <span class='property-internal'>One of 'True'</span> <span class='property-internal'>Case sensitive</span> <span class='property-internal'>Required (defined)</span> <span class='property-internal'>Only one of ReadingsChannelId, ReadingsEsaChannelId, FixedAmount, CopyUseFromMeter, UseCalculation, CalendarizedUseCalculation, UseWatticsDataPoint can be set</span>\n     */\n    useWatticsDataPoint: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CalculationResponse } from './calculationResponse';\nimport { CalendarizedCalculationResponse } from './calendarizedCalculationResponse';\nimport { ChannelChildWithObservationType } from './channelChildWithObservationType';\nimport { CopyFromMeterResponse } from './copyFromMeterResponse';\nimport { EsaChannelChildWithObservationType } from './esaChannelChildWithObservationType';\nimport { FixedAmountResponse } from './fixedAmountResponse';\nimport { WatticsDataPointChild } from './watticsDataPointChild';\n\n\n/**\n * Definition of how a calculated bill will get its use\n */\nexport class CalculatedBillUseResponse {\n    readingsFromChannel: ChannelChildWithObservationType | null | undefined;\n\n    readingsFromEsaChannel: EsaChannelChildWithObservationType | null | undefined;\n\n    fixedAmount: FixedAmountResponse | null | undefined;\n\n    copyUseFromMeter: CopyFromMeterResponse | null | undefined;\n\n    useCalculation: CalculationResponse | null | undefined;\n\n    calendarizedUseCalculation: CalendarizedCalculationResponse | null | undefined;\n\n    readingsFromWatticsDataPoint: WatticsDataPointChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { SubtractRequest } from './subtractRequest';\nimport { SumRequest } from './sumRequest';\n\n\n/**\n * Adding/subtracting calculation involving meters and/or meter groups You must pass in at least 1 thing to sum or subtract\n */\nexport class CalculationRequest {\n    sum: SumRequest | null | undefined;\n\n    subtract: SubtractRequest | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { SubtractResponse } from './subtractResponse';\nimport { SumResponse } from './sumResponse';\n\n\n/**\n * Adding/subtracting calculation involving meters and/or meter groups For each type (sum or subtract), expect only one of the properties to be populated (e.g. if SumMeters has values, then SumMeterGroups should not)\n */\nexport class CalculationResponse {\n    sum: SumResponse | null | undefined;\n\n    subtract: SubtractResponse | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CalendarizedSumRequest } from './calendarizedSumRequest';\n\n\n/**\n * Adding calculation involving meters You must pass in at least 1 thing to sum\n */\nexport class CalendarizedCalculationRequest {\n    sum: CalendarizedSumRequest | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { MeterChild } from './meterChild';\n\n\n/**\n * Adding calendarized calculation involving meters\n */\nexport class CalendarizedCalculationResponse {\n    /**\n     * Addition calculation involving meters\n     */\n    calendarizedSum: Array<MeterChild> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class CalendarizedSumRequest {\n    /**\n     * Meters in this list will have their use or cost added together during the bill calculation <span class='property-internal'>Cannot be Empty</span> <span class='property-internal'>Required</span>\n     */\n    sumMeterIds: Array<number> | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { WaitHandle } from './waitHandle';\n\n\nexport class CancellationToken {\n    /**\n     * \n     */\n    isCancellationRequested: boolean | null | undefined;\n\n    /**\n     * \n     */\n    canBeCanceled: boolean | null | undefined;\n\n    waitHandle: WaitHandle | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ChannelChild {\n    /**\n     * The channel code Combines observationTypeCode:unitCode:observationMethodCode:observationRuleCode:interval in minutes\n     */\n    channelCode: string | null | undefined;\n\n    /**\n     * The channel identifier\n     */\n    channelId: number | null | undefined;\n\n    /**\n     * The channel interval in seconds. Monthly = 2592000 Weekly = 604800 Daily = 86400 Hourly = 3600 Thirty_Minutes = 1800 Fifteen_Minutes = 900\n     */\n    interval: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { ObservationRule } from './observationRule';\nimport { ObservationTypeChild } from './observationTypeChild';\n\n\nexport class ChannelChildWithObservationType {\n    type: ObservationTypeChild | null | undefined;\n\n    rule: ObservationRule | null | undefined;\n\n    /**\n     * The channel code Combines observationTypeCode:unitCode:observationMethodCode:observationRuleCode:interval in minutes\n     */\n    channelCode: string | null | undefined;\n\n    /**\n     * The channel identifier\n     */\n    channelId: number | null | undefined;\n\n    /**\n     * The channel interval in seconds. Monthly = 2592000 Weekly = 604800 Daily = 86400 Hourly = 3600 Thirty_Minutes = 1800 Fifteen_Minutes = 900\n     */\n    interval: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { ChannelVersionRequest } from './channelVersionRequest';\n\n\nexport class ChannelCreate {\n    /**\n     * The interval of the channel in minutes 15 = FifteenMinute, 30 = ThirtyMinute, 60 = Hourly, 1440 = Daily, 10080 = Weekly, 43200 = Monthly <span class='property-internal'>Required</span> <span class='property-internal'>One of '15', '30', '60', '1440', '10080', '43200'</span> <span class='property-internal'>Case sensitive</span>\n     */\n    intervalMinutes: number | null ;\n\n    /**\n     * The observation type of the channel <span class='property-internal'>Required</span>\n     */\n    observationTypeCode: string | null ;\n\n    /**\n     * Description of the channel <span class='property-internal'>Must be between 0 and 4000 characters</span>\n     */\n    channelDescription: string | null | undefined;\n\n    /**\n     * The import identifier for the channel <span class='property-internal'>Must be between 0 and 255 characters</span>\n     */\n    channelImportId: string | null | undefined;\n\n    channelVersion: ChannelVersionRequest | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { ChannelVersionRequest } from './channelVersionRequest';\n\n\nexport class ChannelEdit {\n    /**\n     * The interval of the channel. The interval is measured in minutes Standard intervals are 15 = FifteenMinute, 30 = ThirtyMinute, 60 = Hourly, 1440 = Daily, 10080 = Weekly, 43200 = Monthly <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 1 and 2147483647</span>\n     */\n    intervalMinutes: number | null ;\n\n    /**\n     * The observation type of the channel <span class='property-internal'>Required</span>\n     */\n    observationTypeCode: string | null ;\n\n    /**\n     * Description of the channel <span class='property-internal'>Must be between 0 and 4000 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    channelDescription: string | null | undefined;\n\n    /**\n     * The import identifier for the channel. <span class='property-internal'>Must be between 0 and 255 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    channelImportId: string | null | undefined;\n\n    channelVersion: ChannelVersionRequest | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { ObservationTypeChildBase } from './observationTypeChildBase';\nimport { ReadingChildBase } from './readingChildBase';\n\n\nexport class ChannelLatestReading {\n    observationType: ObservationTypeChildBase | null | undefined;\n\n    lastReading: ReadingChildBase | null | undefined;\n\n    /**\n     * The channel identifier\n     */\n    channelId: number | null | undefined;\n\n    /**\n     * The channel interval in seconds. Monthly = 2592000 Weekly = 604800 Daily = 86400 Hourly = 3600 Thirty_Minutes = 1800 Fifteen_Minutes = 900\n     */\n    interval: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { ChannelVersionResponse } from './channelVersionResponse';\nimport { MeterChildIncludeMeterImportIdAndRoute } from './meterChildIncludeMeterImportIdAndRoute';\nimport { ObservationTypeChild } from './observationTypeChild';\n\n\nexport class ChannelResponse {\n    /**\n     * The channel identifier\n     */\n    channelId: number | null | undefined;\n\n    /**\n     * The interval of the channel. The interval is measured in minutes\n     */\n    intervalMinutes: number | null | undefined;\n\n    observationType: ObservationTypeChild | null | undefined;\n\n    /**\n     * Description of the channel\n     */\n    channelDescription: string | null | undefined;\n\n    /**\n     * The import identifier for the channel.\n     */\n    channelImportId: string | null | undefined;\n\n    /**\n     * Indicates if the channel has readings\n     */\n    hasReadings: boolean | null | undefined;\n\n    /**\n     * Date of the earliest reading for the channel\n     */\n    firstReadingDate: Date | null | undefined;\n\n    /**\n     * Date of the most recent reading for the channel\n     */\n    lastReadingDate: Date | null | undefined;\n\n    /**\n     * List of channel versions Versions include channel settings that may change over time\n     */\n    channelVersions: Array<ChannelVersionResponse> | null | undefined;\n\n    /**\n     * Indicates if the channel is a part of a distribution\n     */\n    isUsedOnDistribution: boolean | null | undefined;\n\n    meter: MeterChildIncludeMeterImportIdAndRoute | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { UDFValue } from './uDFValue';\n\n\nexport class ChannelVersionRequest {\n    /**\n     * The channel multiplier <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 999999999999999</span> <span class='property-internal'>Max scale of 16, max precision of 38</span>\n     */\n    multiplier: number | null ;\n\n    /**\n     * The channel's unit of measure <span class='property-internal'>Required</span>\n     */\n    unitCode: string | null ;\n\n    /**\n     * The channel's observation rule.  Possible values include \\\"Odometer\\\" and \\\"Trip\\\" <span class='property-internal'>Required</span> <span class='property-internal'>One of 'Odometer', 'Trip'</span>\n     */\n    observationRule: string | null ;\n\n    /**\n     * The channel's max reading <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 999999999999999</span> <span class='property-internal'>Max scale of 16, max precision of 38</span>\n     */\n    maximumReading: number | null ;\n\n    /**\n     * List of user defined/custom fields and values for this version If the Udfs list is null or empty no values are assigned If a udf is omitted no value is assigned to that udf To remove a value from an existing Udf, pass in the UdfId and set the Value to null\n     */\n    udfs: Array<UDFValue> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { ObservationRule } from './observationRule';\nimport { UDFFieldChild } from './uDFFieldChild';\nimport { UnitChild } from './unitChild';\n\n\nexport class ChannelVersionResponse {\n    /**\n     * The channel version identifier\n     */\n    channelVersionId: number | null | undefined;\n\n    /**\n     * The channel multiplier\n     */\n    multiplier: number | null | undefined;\n\n    unit: UnitChild | null | undefined;\n\n    observationRule: ObservationRule | null | undefined;\n\n    /**\n     * The channel's max reading\n     */\n    maximumReading: number | null | undefined;\n\n    /**\n     * Date this channel version started to be used\n     */\n    beginDate: Date | null | undefined;\n\n    /**\n     * Date this channel version stopped being used\n     */\n    endDate: Date | null | undefined;\n\n    /**\n     * List of user defined/custom fields and values for this version\n     */\n    udfs: Array<UDFFieldChild> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { UDFValue } from './uDFValue';\n\n\nexport class ChannelVersionWithBeginDateRequest {\n    /**\n     * Date the channel version started to be used <span class='property-internal'>Must be between 12/30/1899 and 12/31/2099</span>\n     */\n    beginDate: Date | null | undefined;\n\n    /**\n     * The channel multiplier <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 999999999999999</span> <span class='property-internal'>Max scale of 16, max precision of 38</span>\n     */\n    multiplier: number | null ;\n\n    /**\n     * The channel's unit of measure <span class='property-internal'>Required</span>\n     */\n    unitCode: string | null ;\n\n    /**\n     * The channel's observation rule.  Possible values include \\\"Odometer\\\" and \\\"Trip\\\" <span class='property-internal'>Required</span> <span class='property-internal'>One of 'Odometer', 'Trip'</span>\n     */\n    observationRule: string | null ;\n\n    /**\n     * The channel's max reading <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 999999999999999</span> <span class='property-internal'>Max scale of 16, max precision of 38</span>\n     */\n    maximumReading: number | null ;\n\n    /**\n     * List of user defined/custom fields and values for this version If the Udfs list is null or empty no values are assigned If a udf is omitted no value is assigned to that udf To remove a value from an existing Udf, pass in the UdfId and set the Value to null\n     */\n    udfs: Array<UDFValue> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { BatchCreate } from './batchCreate';\nimport { QuickFilter } from './quickFilter';\n\n\n/**\n * The settings used to run the chargeback processor\n */\nexport class ChargebackProcessorSettings {\n    /**\n     * Optional Filters. These will aid in identifying the distributions that should be processed TODO:List applicable filters\n     */\n    filters: Array<QuickFilter> | null | undefined;\n\n    /**\n     * Billing Period to be processed <span class='property-internal'>Required</span> <span class='property-internal'>Valid billing period between 190001 and 300001</span>\n     */\n    billingPeriod: number | null ;\n\n    /**\n     * Optional Start Date for Bill being generated. Only used for Calculate Bill and that too when use is not from sub-meter reading The bills generated will inherit bill headers (accounting period, invoice number, control code, etc ) from the batch <span class='property-internal'>Must be between 1899-12-31 and 3000-01-01</span>\n     */\n    startDateForBill: Date | null | undefined;\n\n    /**\n     * Optional End Date for Bill being generated. Only used for Calculate Bill and that too when use is not from sub-meter reading The bills generated will inherit bill headers (accounting period, invoice number, control code, etc ) from the batch <span class='property-internal'>Must be greater than StartDateForBill</span> <span class='property-internal'>Must be between 1899-12-31 and 3000-01-01</span>\n     */\n    endDateForBill: Date | null | undefined;\n\n    /**\n     * Optional note/comment\n     */\n    note: string | null | undefined;\n\n    batchSettings: BatchCreate | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { BatchCreate } from './batchCreate';\n\n\nexport class ChargebackProcessorSettingsForAggregations {\n    /**\n     * End period of Billing Period range to be processed <span class='property-internal'>Valid billing period between 190001 and 300001</span>\n     */\n    billingPeriod: number | null | undefined;\n\n    /**\n     * Optional note/comment\n     */\n    note: string | null | undefined;\n\n    batchSettings: BatchCreate | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { BatchCreate } from './batchCreate';\n\n\nexport class ChargebackProcessorSettingsForSplits {\n    /**\n     * Optional note/comment\n     */\n    note: string | null | undefined;\n\n    batchSettings: BatchCreate | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { BatchCreate } from './batchCreate';\n\n\nexport class ChargebackProcessorSettingsWithoutFilters {\n    /**\n     * Billing Period to be processed <span class='property-internal'>Required</span> <span class='property-internal'>Valid billing period between 190001 and 300001</span>\n     */\n    billingPeriod: number | null ;\n\n    /**\n     * Optional Start Date for Bill being generated. Only used for Calculate Bill and that too when use is not from sub-meter reading The bills generated will inherit bill headers (accounting period, invoice number, control code, etc ) from the batch <span class='property-internal'>Must be between 1899-12-31 and 3000-01-01</span>\n     */\n    startDateForBill: Date | null | undefined;\n\n    /**\n     * Optional End Date for Bill being generated. Only used for Calculate Bill and that too when use is not from sub-meter reading The bills generated will inherit bill headers (accounting period, invoice number, control code, etc ) from the batch <span class='property-internal'>Must be greater than StartDateForBill</span> <span class='property-internal'>Must be between 1899-12-31 and 3000-01-01</span>\n     */\n    endDateForBill: Date | null | undefined;\n\n    /**\n     * Optional note/comment\n     */\n    note: string | null | undefined;\n\n    batchSettings: BatchCreate | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class ChargebackReversals {\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ChargebackReversalsClassPermission {\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ChargebackTaskRequest {\n    /**\n     * Comment to add to the task <span class='property-internal'>Required</span>\n     */\n    comment: string | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { BatchChild } from './batchChild';\nimport { ChargebackWorkflowStepChild } from './chargebackWorkflowStepChild';\nimport { UserChild } from './userChild';\n\n\nexport class ChargebackTaskResponse {\n    /**\n     * The number of bills created by the task\n     */\n    numberOfBillsCreated: number | null | undefined;\n\n    /**\n     * The number of chargeback versions that failed to run within the task\n     */\n    numberOfFailedVersions: number | null | undefined;\n\n    /**\n     * Identifier for the task\n     */\n    taskId: number | null | undefined;\n\n    workflow: ChargebackWorkflowStepChild | null | undefined;\n\n    /**\n     * Begin date when the task started\n     */\n    taskBegin: Date | null | undefined;\n\n    /**\n     * End date when the task ended\n     */\n    taskEnd: Date | null | undefined;\n\n    user: UserChild | null | undefined;\n\n    /**\n     * The billing period the task was run for\n     */\n    billingPeriod: number | null | undefined;\n\n    batch: BatchChild | null | undefined;\n\n    /**\n     * The task's settings\n     */\n    settings: any | null | undefined;\n\n    /**\n     * User comments on the task\n     */\n    comment: string | null | undefined;\n\n    /**\n     * Current status of the task\n     */\n    status: string | null | undefined;\n\n    /**\n     * The chargeback type.  Either \\\"Split\\\" or \\\"Calculation\\\"\n     */\n    chargebackType: string | null | undefined;\n\n    reversedBy: UserChild | null | undefined;\n\n    /**\n     * The date when all bills generated by the task were voided or deleted\n     */\n    reversedDate: Date | null | undefined;\n\n    /**\n     * The number of bills that are currently analyzing within the task\n     */\n    numberOfAnalyzingBills: number | null | undefined;\n\n    /**\n     * The number of unresolved flags on bills within the task\n     */\n    numberOfUnresolvedFlags: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { BatchChild } from './batchChild';\nimport { ChargebackWorkflowStepChild } from './chargebackWorkflowStepChild';\nimport { UserChild } from './userChild';\n\n\nexport class ChargebackTaskVersionResponse {\n    /**\n     * The specific version id within the task we are reporting on\n     */\n    versionId: number | null | undefined;\n\n    /**\n     * The number of bills created for this version within the task\n     */\n    numberOfBillsCreated: number | null | undefined;\n\n    /**\n     * Error that may have occurred when running this version within the task\n     */\n    errorMessage: string | null | undefined;\n\n    /**\n     * The billids of all the destination bills created by this version within the task\n     */\n    destinationBillIds: Array<number> | null | undefined;\n\n    /**\n     * If this was a bill split task, then ID of the bill that was split by this version within the task\n     */\n    sourceBillId: number | null | undefined;\n\n    /**\n     * Identifier for the task\n     */\n    taskId: number | null | undefined;\n\n    workflow: ChargebackWorkflowStepChild | null | undefined;\n\n    /**\n     * Begin date when the task started\n     */\n    taskBegin: Date | null | undefined;\n\n    /**\n     * End date when the task ended\n     */\n    taskEnd: Date | null | undefined;\n\n    user: UserChild | null | undefined;\n\n    /**\n     * The billing period the task was run for\n     */\n    billingPeriod: number | null | undefined;\n\n    batch: BatchChild | null | undefined;\n\n    /**\n     * The task's settings\n     */\n    settings: any | null | undefined;\n\n    /**\n     * User comments on the task\n     */\n    comment: string | null | undefined;\n\n    /**\n     * Current status of the task\n     */\n    status: string | null | undefined;\n\n    /**\n     * The chargeback type.  Either \\\"Split\\\" or \\\"Calculation\\\"\n     */\n    chargebackType: string | null | undefined;\n\n    reversedBy: UserChild | null | undefined;\n\n    /**\n     * The date when all bills generated by the task were voided or deleted\n     */\n    reversedDate: Date | null | undefined;\n\n    /**\n     * The number of bills that are currently analyzing within the task\n     */\n    numberOfAnalyzingBills: number | null | undefined;\n\n    /**\n     * The number of unresolved flags on bills within the task\n     */\n    numberOfUnresolvedFlags: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ChargebackWorkflowBase {\n    /**\n     * Identifier for the chargeback workflow\n     */\n    chargebackWorkflowId: number | null | undefined;\n\n    /**\n     * Name given to the chargeback workflow\n     */\n    chargebackWorkflowInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { ChargebackWorkflowStepCreate } from './chargebackWorkflowStepCreate';\n\n\nexport class ChargebackWorkflowCreate {\n    /**\n     * Name given to the chargeback workflow <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 64 characters</span>\n     */\n    chargebackWorkflowInfo: string | null ;\n\n    /**\n     * List of chargeback workflow steps with details Order of the steps in the list determines the steps in the workflow. <span class='property-internal'>Cannot be Empty</span>\n     */\n    chargebackWorkflowSteps: Array<ChargebackWorkflowStepCreate> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { BillingPeriodUseCostChild } from './billingPeriodUseCostChild';\nimport { BillingPeriodUseCostDeltaChild } from './billingPeriodUseCostDeltaChild';\nimport { ChargebackWorkflowDigestSplitChild } from './chargebackWorkflowDigestSplitChild';\nimport { MeterChild } from './meterChild';\n\n\n/**\n * This class inherits all of the billing period summary properties for a source meter  and adds a list of billing period summaries for each bill split destination meter.\n */\nexport class ChargebackWorkflowDigestChild {\n    /**\n     * List of billing period summaries for meters that are children of a bill split source meter. This list will be null for calculated source meters.\n     */\n    splits: Array<ChargebackWorkflowDigestSplitChild> | null | undefined;\n\n    meter: MeterChild | null | undefined;\n\n    currentPeriod: BillingPeriodUseCostChild | null | undefined;\n\n    priorPeriod: BillingPeriodUseCostDeltaChild | null | undefined;\n\n    priorYear: BillingPeriodUseCostDeltaChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { ChargebackWorkflowDigestChild } from './chargebackWorkflowDigestChild';\nimport { ChargebackWorkflowStepChild } from './chargebackWorkflowStepChild';\n\n\nexport class ChargebackWorkflowDigestResponse {\n    chargebackWorkflowStep: ChargebackWorkflowStepChild | null | undefined;\n\n    /**\n     * The list of digest results for the latest task executed in the specified billing period.\n     */\n    results: Array<ChargebackWorkflowDigestChild> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { BillingPeriodUseCostChild } from './billingPeriodUseCostChild';\nimport { BillingPeriodUseCostDeltaChild } from './billingPeriodUseCostDeltaChild';\nimport { MeterChild } from './meterChild';\n\n\nexport class ChargebackWorkflowDigestSplitChild {\n    meter: MeterChild | null | undefined;\n\n    currentPeriod: BillingPeriodUseCostChild | null | undefined;\n\n    priorPeriod: BillingPeriodUseCostDeltaChild | null | undefined;\n\n    priorYear: BillingPeriodUseCostDeltaChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { ChargebackWorkflowStepEdit } from './chargebackWorkflowStepEdit';\n\n\nexport class ChargebackWorkflowEdit {\n    /**\n     * Name given to the chargeback workflow <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 64 characters</span>\n     */\n    chargebackWorkflowInfo: string | null ;\n\n    /**\n     * List of chargeback workflow steps with details Order of the steps in the list determines the steps in the workflow. <span class='property-internal'>Cannot be Empty</span> <span class='property-internal'>Required (defined)</span>\n     */\n    chargebackWorkflowSteps: Array<ChargebackWorkflowStepEdit> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { ChargebackWorkflowStep } from './chargebackWorkflowStep';\n\n\nexport class ChargebackWorkflowResponse {\n    /**\n     * List of workflow steps with details\n     */\n    chargebackWorkflowSteps: Array<ChargebackWorkflowStep> | null | undefined;\n\n    /**\n     * Identifier for the chargeback workflow\n     */\n    chargebackWorkflowId: number | null | undefined;\n\n    /**\n     * Name given to the chargeback workflow\n     */\n    chargebackWorkflowInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\n/**\n * Represents workflow settings for chargebacks\n */\nexport class ChargebackWorkflowSettings {\n    /**\n     * Allow or prevent the \\\"advanced\\\" dialog to be displayed when running the chargeback processor <span class='property-internal'>Required</span>\n     */\n    allowAdvancedChargebackSettings: boolean | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ChargebackWorkflowStep {\n    /**\n     * Identifier for the chargeback workflow step\n     */\n    chargebackWorkflowStepId: number | null | undefined;\n\n    /**\n     * Name given to the chargeback workflow step\n     */\n    chargebackWorkflowStepInfo: string | null | undefined;\n\n    /**\n     * Description for the chargeback workflow step\n     */\n    chargebackWorkflowStepDescription: string | null | undefined;\n\n    /**\n     * The chargeback type that can be assign to this chargeback workflow step.  Either \\\"Split\\\" or \\\"Calculation\\\"\n     */\n    chargebackWorkflowStepType: string | null | undefined;\n\n    /**\n     * The order for this step within the chargeback workflow\n     */\n    chargebackWorkflowStepOrder: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { ChargebackWorkflowBase } from './chargebackWorkflowBase';\n\n\nexport class ChargebackWorkflowStepChild {\n    /**\n     * Identifier for the chargeback workflow step\n     */\n    chargebackWorkflowStepId: number | null | undefined;\n\n    /**\n     * Name given to the chargeback workflow step\n     */\n    chargebackWorkflowStepInfo: string | null | undefined;\n\n    /**\n     * Description for the chargeback workflow step\n     */\n    chargebackWorkflowStepDescription: string | null | undefined;\n\n    /**\n     * The chargeback type that can be assign to this chargeback workflow step. <span class='property-internal'>One of 'Split', 'Calculation'</span> <span class='property-internal'>One of 'Split', 'Calculation'</span>\n     */\n    chargebackWorkflowStepType: string | null | undefined;\n\n    /**\n     * The order for this step within the chargeback workflow\n     */\n    chargebackWorkflowStepOrder: number | null | undefined;\n\n    chargebackWorkflow: ChargebackWorkflowBase | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ChargebackWorkflowStepCreate {\n    /**\n     * Name given to the chargeback workflow step <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 64 characters</span>\n     */\n    chargebackWorkflowStepInfo: string | null ;\n\n    /**\n     * Description for the chargeback workflow step <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 255 characters</span>\n     */\n    chargebackWorkflowStepDescription: string | null ;\n\n    /**\n     * The chargeback type that can be assign to this chargeback workflow step. <span class='property-internal'>One of 'Split', 'Calculation'</span>\n     */\n    chargebackWorkflowStepType: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ChargebackWorkflowStepEdit {\n    /**\n     * Identifier for the chargeback workflow step If calculateBillWorkflowStepId has a value it will be updated If calculateBillWorkflowStepId is null, a new step will be created <span class='property-internal'>Required (defined)</span>\n     */\n    chargebackWorkflowStepId: number | null | undefined;\n\n    /**\n     * Name given to the chargeback workflow step Must be unique for a particular type (split or calculation) across all workflows <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 64 characters</span>\n     */\n    chargebackWorkflowStepInfo: string | null ;\n\n    /**\n     * Description for the chargeback workflow step <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 255 characters</span>\n     */\n    chargebackWorkflowStepDescription: string | null ;\n\n    /**\n     * The chargeback type that can be assign to this chargeback workflow step. When editing a step you cannot change the type <span class='property-internal'>One of 'Split', 'Calculation'</span> <span class='property-internal'>Required (defined)</span>\n     */\n    chargebackWorkflowStepType: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class Chargebacks {\n    /**\n     * \n     */\n    run: boolean | null | undefined;\n\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ChargebacksClassPermission {\n    /**\n     * \n     */\n    run: boolean | null | undefined;\n\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class ChargebacksModule {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ChargebacksModuleClassPermission {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class Claim {\n    /**\n     * Type of claim\n     */\n    claimType: string | null | undefined;\n\n    /**\n     * Claim value\n     */\n    value: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { Icon } from './icon';\n\n\nexport class CollectionChild {\n    /**\n     * The collection identifier\n     */\n    collectionId: number | null | undefined;\n\n    /**\n     * The collection code\n     */\n    collectionCode: string | null | undefined;\n\n    /**\n     * The collection info\n     */\n    collectionInfo: string | null | undefined;\n\n    collectionIcon: Icon | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CommodityChild } from './commodityChild';\n\n\nexport class CollectionEmissionSourceChild {\n    /**\n     * The emission source identifier\n     */\n    emissionSourceId: number | null | undefined;\n\n    /**\n     * The emission source code\n     */\n    emissionSourceCode: string | null | undefined;\n\n    /**\n     * The emission source info\n     */\n    emissionSourceInfo: string | null | undefined;\n\n    /**\n     * Whether the emission source is active or not\n     */\n    active: boolean | null | undefined;\n\n    commodity: CommodityChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { Icon } from './icon';\n\n\nexport class CollectionRequest {\n    /**\n     * The collection code <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 32 characters</span>\n     */\n    collectionCode: string | null ;\n\n    /**\n     * The collection info <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 50 characters</span>\n     */\n    collectionInfo: string | null ;\n\n    /**\n     * The identifier for the parent of the collection. The parent is the collection directly above the current collection on the collections and emission sources tree <span class='property-internal'>Required</span>\n     */\n    parentCollectionId: number | null ;\n\n    collectionIcon: Icon | null | undefined;\n\n    /**\n     * The collection note <span class='property-internal'>Must be between 0 and 255 characters</span>\n     */\n    note: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CollectionChild } from './collectionChild';\nimport { CollectionEmissionSourceChild } from './collectionEmissionSourceChild';\nimport { Icon } from './icon';\n\n\nexport class CollectionResponse {\n    /**\n     * The collection identifier\n     */\n    collectionId: number | null | undefined;\n\n    /**\n     * The collection code\n     */\n    collectionCode: string | null | undefined;\n\n    /**\n     * The collection info\n     */\n    collectionInfo: string | null | undefined;\n\n    /**\n     * The collection description\n     */\n    note: string | null | undefined;\n\n    collectionIcon: Icon | null | undefined;\n\n    parent: CollectionChild | null | undefined;\n\n    /**\n     * An array of child collections\n     */\n    collections: Array<CollectionChild> | null | undefined;\n\n    /**\n     * An array of child emission sources\n     */\n    emissionSources: Array<CollectionEmissionSourceChild> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class Collections {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    create: boolean | null | undefined;\n\n    /**\n     * \n     */\n    edit: boolean | null | undefined;\n\n    /**\n     * \n     */\n    delete: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class CollectionsClassPermission {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    create: boolean | null | undefined;\n\n    /**\n     * \n     */\n    edit: boolean | null | undefined;\n\n    /**\n     * \n     */\n    delete: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ColumnNumberOrOverrideValueNullableInt32 {\n    /**\n     * Column number\n     */\n    columnNumber: number | null | undefined;\n\n    /**\n     * The value of the column\n     */\n    overrideValue: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ColumnNumberOrOverrideValueString {\n    /**\n     * Column number\n     */\n    columnNumber: number | null | undefined;\n\n    /**\n     * The value of the column\n     */\n    overrideValue: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { UnitChild } from './unitChild';\n\n\nexport class CommodityCategory {\n    commonUseUnit: UnitChild | null | undefined;\n\n    commonDemandUnit: UnitChild | null | undefined;\n\n    /**\n     * The commodity category id\n     */\n    commodityCategoryId: number | null | undefined;\n\n    /**\n     * The commodity category info\n     */\n    commodityCategoryInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class CommodityCategoryChild {\n    /**\n     * The commodity category id\n     */\n    commodityCategoryId: number | null | undefined;\n\n    /**\n     * The commodity category info\n     */\n    commodityCategoryInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class CommodityCategoryRequest {\n    /**\n     * The commodity category info <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 32 characters</span>\n     */\n    commodityCategoryInfo: string | null ;\n\n    /**\n     * The default use unit for this category\n     */\n    commonUseUnitId: number | null | undefined;\n\n    /**\n     * The default demand unit for this category\n     */\n    commonDemandUnitId: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CommodityChild } from './commodityChild';\nimport { UnitChild } from './unitChild';\n\n\nexport class CommodityCategoryResponse {\n    /**\n     * List of commodities under the category\n     */\n    commodities: Array<CommodityChild> | null | undefined;\n\n    commonUseUnit: UnitChild | null | undefined;\n\n    commonDemandUnit: UnitChild | null | undefined;\n\n    /**\n     * The commodity category id\n     */\n    commodityCategoryId: number | null | undefined;\n\n    /**\n     * The commodity category info\n     */\n    commodityCategoryInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { Icon } from './icon';\n\n\nexport class CommodityChild {\n    /**\n     * The commodity identifier <span class='property-internal'>Required (defined)</span>\n     */\n    commodityId: number | null | undefined;\n\n    /**\n     * The commodity code <span class='property-internal'>Required (defined)</span>\n     */\n    commodityCode: string | null | undefined;\n\n    /**\n     * The commodity info <span class='property-internal'>Required (defined)</span>\n     */\n    commodityInfo: string | null | undefined;\n\n    commodityIcon: Icon | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CommodityCategoryChild } from './commodityCategoryChild';\nimport { Icon } from './icon';\n\n\nexport class CommodityChildWithCategory {\n    commodityCategory: CommodityCategoryChild | null | undefined;\n\n    /**\n     * The commodity identifier\n     */\n    commodityId: number | null | undefined;\n\n    /**\n     * The commodity code\n     */\n    commodityCode: string | null | undefined;\n\n    /**\n     * The commodity info\n     */\n    commodityInfo: string | null | undefined;\n\n    commodityIcon: Icon | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CommodityDigestActualYearlyResponseCommodityData } from './commodityDigestActualYearlyResponseCommodityData';\nimport { CommodityDigestActualYearlyResponseResults } from './commodityDigestActualYearlyResponseResults';\nimport { UnitChild } from './unitChild';\n\n\nexport class CommodityDigestActualYearlyResponse {\n    globalUseUnit: UnitChild | null | undefined;\n\n    costUnit: UnitChild | null | undefined;\n\n    /**\n     * The date and time the data was updated\n     */\n    updated: Date | null | undefined;\n\n    /**\n     * An array of yearly data\n     */\n    results: Array<CommodityDigestActualYearlyResponseResults> | null | undefined;\n\n    /**\n     * An array of yearly data per commodity\n     */\n    commodities: Array<CommodityDigestActualYearlyResponseCommodityData> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CommodityDigestActualYearlyResponseCommodityResults } from './commodityDigestActualYearlyResponseCommodityResults';\nimport { UnitChild } from './unitChild';\n\n\nexport class CommodityDigestActualYearlyResponseCommodityData {\n    /**\n     * The commodity code\n     */\n    commodityCode: string | null | undefined;\n\n    /**\n     * The commodity info\n     */\n    commodityInfo: string | null | undefined;\n\n    /**\n     * The commodity identifier\n     */\n    commodityId: number | null | undefined;\n\n    commonUseUnit: UnitChild | null | undefined;\n\n    costUnit: UnitChild | null | undefined;\n\n    /**\n     * An array of yearly data\n     */\n    results: Array<CommodityDigestActualYearlyResponseCommodityResults> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class CommodityDigestActualYearlyResponseCommodityResults {\n    /**\n     * year\n     */\n    year: string | null | undefined;\n\n    /**\n     * Total Cost\n     */\n    totalCost: number | null | undefined;\n\n    /**\n     * Common Use\n     */\n    commonUse: number | null | undefined;\n\n    /**\n     * Common Use Unit Cost\n     */\n    commonUseUnitCost: number | null | undefined;\n\n    /**\n     * Global Use\n     */\n    globalUse: number | null | undefined;\n\n    /**\n     * Global Use Unit Cost\n     */\n    globalUseUnitCost: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class CommodityDigestActualYearlyResponseResults {\n    /**\n     * Year\n     */\n    year: string | null | undefined;\n\n    /**\n     * Total Cost\n     */\n    totalCost: number | null | undefined;\n\n    /**\n     * Global Use\n     */\n    globalUse: number | null | undefined;\n\n    /**\n     * Global Use Unit Cost\n     */\n    globalUseUnitCost: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { Icon } from './icon';\n\n\nexport class CommodityEditRequest {\n    /**\n     * The commodity info <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 32 characters</span>\n     */\n    commodityInfo: string | null ;\n\n    /**\n     * Three letter abbreviation code to represent the commodity <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 1 and 3 characters</span>\n     */\n    abbreviation: string | null ;\n\n    /**\n     * The commodity description <span class='property-internal'>Must be between 0 and 255 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    description: string | null | undefined;\n\n    icon: Icon | null | undefined;\n\n    /**\n     * The commodity category identifier   If the category is provided, the default use rollup unit and default demand rollup unit for that category will be used <span class='property-internal'>Required (defined)</span> <span class='property-internal'>Only one of CommodityCategoryId, CommodityRollupUnitId can be set</span> <span class='property-internal'>Only one of CommodityCategoryId, CommodityDemandRollupUnitId can be set</span>\n     */\n    commodityCategoryId: number | null | undefined;\n\n    /**\n     * The common use unit identifier for reporting purposes   Ignored if a commodity category is provided and it has a rollup unit specified <span class='property-internal'>Required (defined)</span> <span class='property-internal'>Only one of CommodityCategoryId, CommodityRollupUnitId can be set</span>\n     */\n    commodityRollupUnitId: number | null | undefined;\n\n    /**\n     * Indicates if the commodity should be included in Energy reporting <span class='property-internal'>Required (defined)</span>\n     */\n    includeInEnergyReporting: boolean | null | undefined;\n\n    /**\n     * The multiplier to convert from the commodity rollup unit to the energy use reporting unit   Not required if commodity rollup unit is in the energy unit category <span class='property-internal'>Must be null when IncludeInEnergyReporting  is  set to False, case sensitive</span>\n     */\n    energyReportingUnitConversionMultiplier: number | null | undefined;\n\n    /**\n     * The common demand unit identifier for reporting purposes   Ignored if a commodity category is provided and it has a demand rollup unit specified <span class='property-internal'>Required (defined)</span> <span class='property-internal'>Only one of CommodityCategoryId, CommodityDemandRollupUnitId can be set</span>\n     */\n    commodityDemandRollupUnitId: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { Icon } from './icon';\n\n\nexport class CommodityRequest {\n    /**\n     * The commodity info <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 32 characters</span>\n     */\n    commodityInfo: string | null ;\n\n    /**\n     * Three letter abbreviation code to represent the commodity <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 1 and 3 characters</span>\n     */\n    abbreviation: string | null ;\n\n    /**\n     * The commodity description <span class='property-internal'>Must be between 0 and 255 characters</span>\n     */\n    description: string | null | undefined;\n\n    icon: Icon | null | undefined;\n\n    /**\n     * The commodity category identifier   If the category is provided, the default use rollup unit and default demand rollup unit for that category will be used <span class='property-internal'>Only one of CommodityCategoryId, CommodityRollupUnitId can be set</span> <span class='property-internal'>Only one of CommodityCategoryId, CommodityDemandRollupUnitId can be set</span>\n     */\n    commodityCategoryId: number | null | undefined;\n\n    /**\n     * The common use unit identifier for reporting purposes   Ignored if a commodity category is provided and it has a rollup unit specified <span class='property-internal'>Only one of CommodityCategoryId, CommodityRollupUnitId can be set</span>\n     */\n    commodityRollupUnitId: number | null | undefined;\n\n    /**\n     * Indicates if the commodity should be included in Energy reporting\n     */\n    includeInEnergyReporting: boolean | null | undefined;\n\n    /**\n     * The multiplier to convert from the commodity rollup unit to the energy use reporting unit   Not required if commodity rollup unit is in the energy unit category <span class='property-internal'>Must be null when IncludeInEnergyReporting  is  set to False, case sensitive</span>\n     */\n    energyReportingUnitConversionMultiplier: number | null | undefined;\n\n    /**\n     * The common demand unit identifier for reporting purposes   Ignored if a commodity category is provided and it has a demand rollup unit specified <span class='property-internal'>Only one of CommodityCategoryId, CommodityDemandRollupUnitId can be set</span>\n     */\n    commodityDemandRollupUnitId: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CommodityCategory } from './commodityCategory';\nimport { Icon } from './icon';\nimport { UnitChild } from './unitChild';\n\n\nexport class CommodityResponse {\n    /**\n     * The commodity identifier\n     */\n    commodityId: number | null | undefined;\n\n    /**\n     * The commodity code\n     */\n    commodityCode: string | null | undefined;\n\n    /**\n     * The commodity info\n     */\n    commodityInfo: string | null | undefined;\n\n    /**\n     * Three letter abbreviation code to represent the commodity\n     */\n    abbreviation: string | null | undefined;\n\n    /**\n     * The commodity description\n     */\n    description: string | null | undefined;\n\n    icon: Icon | null | undefined;\n\n    commodityCategory: CommodityCategory | null | undefined;\n\n    useRollupUnit: UnitChild | null | undefined;\n\n    demandRollupUnit: UnitChild | null | undefined;\n\n    /**\n     * Indicates if the commodity should be included in Energy reporting\n     */\n    includeInEnergyReporting: boolean | null | undefined;\n\n    /**\n     * The multiplier to convert from the commodity rollup unit to the energy use reporting unit\n     */\n    energyReportingUnitConversionMultiplier: number | null | undefined;\n\n    /**\n     * Indicates if the commodity is in use on a meter/emissions source\n     */\n    inUse: boolean | null | undefined;\n\n    /**\n     * Indicates if the commodity is a system-level commodity\n     */\n    isSystemCommodity: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class CommoditySkipAuditSettingRequest {\n    /**\n     *  <span class='property-internal'>Required (defined)</span>\n     */\n    commoditiesToSkip: Array<number> | null | undefined;\n\n    /**\n     * The status of the audit setting <span class='property-internal'>One of 'Check', 'Hold', 'Skip'</span> <span class='property-internal'>Required (defined)</span>\n     */\n    settingStatus: string | null | undefined;\n\n    /**\n     * Minimum Bill/Meter Cost.  This audit will run only when the cost meets the specified minimum cost <span class='property-internal'>Required (defined)</span>\n     */\n    minimumCost: number | null | undefined;\n\n    /**\n     * List of Assignees.  Ids of the users the flag should get assigned to when the audit fails. <span class='property-internal'>Required (defined)</span>\n     */\n    assignees: Array<number> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CommodityChild } from './commodityChild';\nimport { UserChild } from './userChild';\n\n\nexport class CommoditySkipAuditSettingResponse {\n    /**\n     * \n     */\n    commoditiesToSkip: Array<CommodityChild> | null | undefined;\n\n    /**\n     * The status of the audit setting - Possible values Check, Hold, Skip\n     */\n    settingStatus: string | null | undefined;\n\n    /**\n     * The setting code\n     */\n    settingCode: string | null | undefined;\n\n    /**\n     * A description of the setting\n     */\n    settingDescription: string | null | undefined;\n\n    /**\n     * Minimum Bill/Meter Cost.  This audit wwill run only when the cost meets the specified minimum cost\n     */\n    minimumCost: number | null | undefined;\n\n    /**\n     * List of Assignees.  UserChildDTO representing the users the flag should get assigned to when the audit fails.\n     */\n    assignees: Array<UserChild> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CommodityChild } from './commodityChild';\nimport { ValueWithUnit } from './valueWithUnit';\n\n\n/**\n * General purpose commodity value comparison DTO\n */\nexport class CommodityValueComparison {\n    commodity: CommodityChild | null | undefined;\n\n    currentValue: ValueWithUnit | null | undefined;\n\n    previousValue: ValueWithUnit | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ContactChild {\n    /**\n     * The contact identifier\n     */\n    contactId: number | null | undefined;\n\n    /**\n     * The contact's first name\n     */\n    first: string | null | undefined;\n\n    /**\n     * The contact's middle name\n     */\n    middle: string | null | undefined;\n\n    /**\n     * The contact's last name\n     */\n    last: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { MeterChild } from './meterChild';\n\n\n/**\n * Defines an account and meter whose use or cost will be copied when calculating a bill\n */\nexport class CopyFromMeterResponse {\n    meter: MeterChild | null | undefined;\n\n    /**\n     * Percentage of use or cost to copy\n     */\n    percentage: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\n/**\n * Defines a meter whose use or cost will be copied when calculating a bill The meter may have a commodity which is different than the destination meter When doing the calculation we will sum the use or cost across all accounts this meter is associated with for the billing period begin run\n */\nexport class CopyMeterRequest {\n    /**\n     * Meter from which use or cost will be copied <span class='property-internal'>Required</span> <span class='property-internal'>Topmost (LogicalDevice)</span>\n     */\n    meterId: number | null ;\n\n    /**\n     * Percentage of use or cost to copy Pass the percentage value For example 50.5% should be 50.5 <span class='property-internal'>Required</span> <span class='property-info'>Max scale of 8</span>\n     */\n    percentage: number | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class CostAvoidanceSettings {\n    /**\n     * Only bills with a billing period greater than or equal to this value were included in Cost Avoidance processing Will be null unless BillSelectionOption is \\\"BillingPeriod\\\" and Reason is \\\"ProcessSavings\\\"\n     */\n    minimumBillingPeriod: number | null | undefined;\n\n    /**\n     * Indicates if the Cost Avoidance processor skipped processing meters with multiple accounts if one of the bills was missing Will be empty unless Reason is \\\"ProcessSavings\\\"\n     */\n    skippedMultiAccountIfBillsMissing: boolean | null | undefined;\n\n    /**\n     * Indicates if weather adjustments were ignored when the baseline processor was run Will be null unless Reason is \\\"ResetBaseline\\\"\n     */\n    ignoredWeatherAdjustments: boolean | null | undefined;\n\n    /**\n     * Defines handling of meter special adjustments during Cost Avoidance processing. Can be either of two static values OR the special adjustment category that the user chose to skip. Will be empty unless Reason is \\\"ProcessSavings\\\" Possible static values: \\\"NONE\\\" - no special adjustment categories were skipped \\\"ALL\\\" - all special adjustment categories were skipped\n     */\n    ignoredSpecialAdjustmentType: string | null | undefined;\n\n    /**\n     * For savings calculation, indicates which bills should have been processed Will be empty unless Reason is \\\"ProcessSavings\\\" Possible values: - \\\"AllBills\\\" means all bills were processed - \\\"ModifiedOrNotProcessed\\\" means only new bills or bills which have been modified since the last time cost avoidance was run have been processed - \\\"BillingPeriod\\\" means that only bills with a billing period which is greater than or equal to the MinimumBillingPeriod have been processed\n     */\n    billSelectionOption: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { BaselineLog } from './baselineLog';\nimport { CostAvoidanceSettings } from './costAvoidanceSettings';\nimport { FilterResponse } from './filterResponse';\nimport { SavingsLog } from './savingsLog';\nimport { TaskType } from './taskType';\nimport { UserChild } from './userChild';\n\n\nexport class CostAvoidanceTask {\n    /**\n     * Indicates whether or not the task has an output log available for download\n     */\n    hasAttachments: boolean | null | undefined;\n\n    /**\n     * The task ID\n     */\n    costAvoidanceTaskId: number | null | undefined;\n\n    /**\n     * The task GUID\n     */\n    taskGUId: string | null | undefined;\n\n    taskType: TaskType | null | undefined;\n\n    /**\n     * The date and time the task began\n     */\n    beginDate: Date | null | undefined;\n\n    /**\n     * The date and time the task finished. If the task is not finished, endDate will have no value\n     */\n    endDate: Date | null | undefined;\n\n    user: UserChild | null | undefined;\n\n    settings: CostAvoidanceSettings | null | undefined;\n\n    /**\n     * The task's filters\n     */\n    filters: Array<FilterResponse> | null | undefined;\n\n    /**\n     * If there was a catastrophic error during task processing, it will go here\n     */\n    message: string | null | undefined;\n\n    /**\n     * The reason for the cost avoidance task. Will be one of the following: * ResetBaseline * SavedAndReprocessedMeter * ProcessSavings * SpecialAdjustmentAddedEditedRemoved * SpecialAdjustmentAddedEditedRemovedSetupSheet * MeterCostAvoidanceSettingsGloballyUpdated * AucRangeModified * OtherSavingsAddedEdited * OtherSavingsAddedEditedSetupSheet\n     */\n    reason: string | null | undefined;\n\n    /**\n     * The status of the cost avoidance task. Will be one of the following: * Processing * Complete * Error\n     */\n    status: string | null | undefined;\n\n    /**\n     * Notes added to the cost avoidance task by the user\n     */\n    taskNote: string | null | undefined;\n\n    baselineLog: BaselineLog | null | undefined;\n\n    savingsLog: SavingsLog | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class CostCategoryEdit {\n    /**\n     * Name of the cost category <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 255 characters</span>\n     */\n    costCategoryInfo: string | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class CostCategoryResponse {\n    /**\n     * The cost category identifier <span class='property-internal'>Required (defined)</span>\n     */\n    costCategoryId: number | null | undefined;\n\n    /**\n     * Name of the cost category <span class='property-internal'>Required (defined)</span>\n     */\n    costCategoryInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AccountTypeChild } from './accountTypeChild';\n\n\nexport class CostCenterAccountChild {\n    /**\n     * The account identifier\n     */\n    accountId: number | null | undefined;\n\n    /**\n     * The account code\n     */\n    accountCode: string | null | undefined;\n\n    /**\n     * The account info\n     */\n    accountInfo: string | null | undefined;\n\n    /**\n     * Whether the account is active or not\n     */\n    active: boolean | null | undefined;\n\n    /**\n     * Indicates whether the Account has a child calculated meter\n     */\n    hasCalculatedMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the Account is a recipient of a split\n     */\n    hasSplitParentMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the Account has a child split meter\n     */\n    hasSplitChildMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the Account is a sub-account\n     */\n    isSubAccount: boolean | null | undefined;\n\n    /**\n     * Indicates whether the Account has a sub-account\n     */\n    hasSubAccount: boolean | null | undefined;\n\n    accountType: AccountTypeChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class CostCenterChild {\n    /**\n     * The cost center identifier\n     */\n    costCenterId: number | null | undefined;\n\n    /**\n     * The cost center code\n     */\n    costCenterCode: string | null | undefined;\n\n    /**\n     * The cost center info\n     */\n    costCenterInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class CostCenterCreate {\n    /**\n     * The cost center code <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 32 characters</span>\n     */\n    costCenterCode: string | null ;\n\n    /**\n     * The cost center info <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 32 characters</span>\n     */\n    costCenterInfo: string | null ;\n\n    /**\n     * The identifier for the parent of the cost center. The parent is the cost center directly above the current cost center on the Accounts tree <span class='property-internal'>Required</span> <span class='property-internal'>Topmost (CostCenter)</span>\n     */\n    parentCostCenterId: number | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CostCenterDigestActualMonthlyResponseCommodityData } from './costCenterDigestActualMonthlyResponseCommodityData';\nimport { CostCenterDigestActualMonthlyResponseResults } from './costCenterDigestActualMonthlyResponseResults';\nimport { UnitChild } from './unitChild';\n\n\nexport class CostCenterDigestActualMonthlyResponse {\n    /**\n     * The costCenter code\n     */\n    costCenterCode: string | null | undefined;\n\n    /**\n     * The costCenter info\n     */\n    costCenterInfo: string | null | undefined;\n\n    /**\n     * The costCenter identifier\n     */\n    costCenterId: number | null | undefined;\n\n    /**\n     * The date and time the data was updated\n     */\n    updated: Date | null | undefined;\n\n    globalUseUnit: UnitChild | null | undefined;\n\n    costUnit: UnitChild | null | undefined;\n\n    /**\n     * An array of monthly data per commodity\n     */\n    commodities: Array<CostCenterDigestActualMonthlyResponseCommodityData> | null | undefined;\n\n    /**\n     * An array of monthly data\n     */\n    results: Array<CostCenterDigestActualMonthlyResponseResults> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CostCenterDigestActualMonthlyResponseCommodityResults } from './costCenterDigestActualMonthlyResponseCommodityResults';\nimport { UnitChild } from './unitChild';\n\n\nexport class CostCenterDigestActualMonthlyResponseCommodityData {\n    /**\n     * The commodity code\n     */\n    commodityCode: string | null | undefined;\n\n    /**\n     * The commodity info\n     */\n    commodityInfo: string | null | undefined;\n\n    /**\n     * The commodity identifier\n     */\n    commodityId: number | null | undefined;\n\n    commonUseUnit: UnitChild | null | undefined;\n\n    costUnit: UnitChild | null | undefined;\n\n    /**\n     * An array of commodity monthly data\n     */\n    results: Array<CostCenterDigestActualMonthlyResponseCommodityResults> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class CostCenterDigestActualMonthlyResponseCommodityResults {\n    /**\n     * Calendar Period Name\n     */\n    periodName: string | null | undefined;\n\n    /**\n     * Calendar Period\n     */\n    calendarPeriod: number | null | undefined;\n\n    /**\n     * Calendar Year\n     */\n    calendarYear: number | null | undefined;\n\n    /**\n     * Fiscal Period\n     */\n    fiscalPeriod: number | null | undefined;\n\n    /**\n     * Fiscal Year\n     */\n    fiscalYear: number | null | undefined;\n\n    /**\n     * Total Cost\n     */\n    totalCost: number | null | undefined;\n\n    /**\n     * Common Use\n     */\n    commonUse: number | null | undefined;\n\n    /**\n     * Common Use Unit Cost\n     */\n    commonUseUnitCost: number | null | undefined;\n\n    /**\n     * Global Use\n     */\n    globalUse: number | null | undefined;\n\n    /**\n     * Global Use Unit Cost\n     */\n    globalUseUnitCost: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class CostCenterDigestActualMonthlyResponseResults {\n    /**\n     * Calendar Period Name\n     */\n    periodName: string | null | undefined;\n\n    /**\n     * Calendar Period\n     */\n    calendarPeriod: number | null | undefined;\n\n    /**\n     * Calendar Year\n     */\n    calendarYear: number | null | undefined;\n\n    /**\n     * Fiscal Period\n     */\n    fiscalPeriod: number | null | undefined;\n\n    /**\n     * Fiscal Year\n     */\n    fiscalYear: number | null | undefined;\n\n    /**\n     * Total Cost\n     */\n    totalCost: number | null | undefined;\n\n    /**\n     * Global Use\n     */\n    globalUse: number | null | undefined;\n\n    /**\n     * Global Use Unit Cost\n     */\n    globalUseUnitCost: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CostCenterDigestActualYearlyResponseCommodityData } from './costCenterDigestActualYearlyResponseCommodityData';\nimport { CostCenterDigestActualYearlyResponseResults } from './costCenterDigestActualYearlyResponseResults';\nimport { UnitChild } from './unitChild';\n\n\nexport class CostCenterDigestActualYearlyResponse {\n    /**\n     * The costCenter code\n     */\n    costCenterCode: string | null | undefined;\n\n    /**\n     * The costCenter info\n     */\n    costCenterInfo: string | null | undefined;\n\n    /**\n     * The costCenter identifier\n     */\n    costCenterId: number | null | undefined;\n\n    globalUseUnit: UnitChild | null | undefined;\n\n    costUnit: UnitChild | null | undefined;\n\n    /**\n     * The date and time the data was updated\n     */\n    updated: Date | null | undefined;\n\n    /**\n     * An array of yearly data\n     */\n    results: Array<CostCenterDigestActualYearlyResponseResults> | null | undefined;\n\n    /**\n     * An array of yearly data per commodity\n     */\n    commodities: Array<CostCenterDigestActualYearlyResponseCommodityData> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CostCenterDigestActualYearlyResponseCommodityResults } from './costCenterDigestActualYearlyResponseCommodityResults';\nimport { UnitChild } from './unitChild';\n\n\nexport class CostCenterDigestActualYearlyResponseCommodityData {\n    /**\n     * The commodity code\n     */\n    commodityCode: string | null | undefined;\n\n    /**\n     * The commodity info\n     */\n    commodityInfo: string | null | undefined;\n\n    /**\n     * The commodity identifier\n     */\n    commodityId: number | null | undefined;\n\n    commonUseUnit: UnitChild | null | undefined;\n\n    costUnit: UnitChild | null | undefined;\n\n    /**\n     * An array of yearly data\n     */\n    results: Array<CostCenterDigestActualYearlyResponseCommodityResults> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class CostCenterDigestActualYearlyResponseCommodityResults {\n    /**\n     * year\n     */\n    year: string | null | undefined;\n\n    /**\n     * Total Cost\n     */\n    totalCost: number | null | undefined;\n\n    /**\n     * Common Use\n     */\n    commonUse: number | null | undefined;\n\n    /**\n     * Common Use Unit Cost\n     */\n    commonUseUnitCost: number | null | undefined;\n\n    /**\n     * Global Use\n     */\n    globalUse: number | null | undefined;\n\n    /**\n     * Global Use Unit Cost\n     */\n    globalUseUnitCost: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class CostCenterDigestActualYearlyResponseResults {\n    /**\n     * Year\n     */\n    year: string | null | undefined;\n\n    /**\n     * Total Cost\n     */\n    totalCost: number | null | undefined;\n\n    /**\n     * Global Use\n     */\n    globalUse: number | null | undefined;\n\n    /**\n     * Global Use Unit Cost\n     */\n    globalUseUnitCost: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CostCenterAccountChild } from './costCenterAccountChild';\nimport { CostCenterChild } from './costCenterChild';\n\n\nexport class CostCenterResponse {\n    /**\n     * The cost center identifier\n     */\n    costCenterId: number | null | undefined;\n\n    /**\n     * The cost center code\n     */\n    costCenterCode: string | null | undefined;\n\n    /**\n     * The cost center info\n     */\n    costCenterInfo: string | null | undefined;\n\n    parent: CostCenterChild | null | undefined;\n\n    /**\n     * An array of child cost centers\n     */\n    costCenters: Array<CostCenterChild> | null | undefined;\n\n    /**\n     * An array of child accounts\n     */\n    accounts: Array<CostCenterAccountChild> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class CostCenters {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    create: boolean | null | undefined;\n\n    /**\n     * \n     */\n    edit: boolean | null | undefined;\n\n    /**\n     * \n     */\n    delete: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class CostCentersClassPermission {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    create: boolean | null | undefined;\n\n    /**\n     * \n     */\n    edit: boolean | null | undefined;\n\n    /**\n     * \n     */\n    delete: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { UnitChild } from './unitChild';\n\n\nexport class CostConversion {\n    sourceUnit: UnitChild | null | undefined;\n\n    systemUnit: UnitChild | null | undefined;\n\n    /**\n     * The conversion factor used to convert from the source cost unit to the system cost unit\n     */\n    sourceToSystemConversionValue: number | null | undefined;\n\n    /**\n     * The date used to look up the currency conversion\n     */\n    conversionDate: Date | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class CostConversionBase {\n    /**\n     * The conversion factor used to convert from the source cost unit to the system cost unit\n     */\n    sourceToSystemConversionValue: number | null | undefined;\n\n    /**\n     * The date used to look up the currency conversion\n     */\n    conversionDate: Date | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CostSavingsUnit } from './costSavingsUnit';\n\n\nexport class CostSavingsChild {\n    /**\n     * The cost savings amount\n     */\n    costSavings: number | null | undefined;\n\n    costSavingsUnit: CostSavingsUnit | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class CostSavingsUnit {\n    /**\n     * The cost savings unit identifier\n     */\n    costSavingsUnitId: number | null | undefined;\n\n    /**\n     * The cost savings unit code\n     */\n    costSavingsUnitCode: string | null | undefined;\n\n    /**\n     * The cost savings unit information\n     */\n    costSavingsUnitInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class Country {\n    /**\n     * \n     */\n    countryId: number | null | undefined;\n\n    /**\n     * \n     */\n    name: string | null | undefined;\n\n    /**\n     * \n     */\n    alpha2Code: string | null | undefined;\n\n    /**\n     * \n     */\n    possibleSpellings: Array<string> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class CreateTemplateFromBill {\n    /**\n     * The template code Always converted to uppercase <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 32 characters</span>\n     */\n    templateCode: string | null ;\n\n    /**\n     * The template note <span class='property-internal'>Must be between 0 and 255 characters</span>\n     */\n    note: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\n/**\n * \n */\nexport class CreateUtilityPlatformMeter {\n    /**\n     * The meter code <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 32 characters</span>\n     */\n    meterCode: string | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class CustomerChild {\n    /**\n     * The customer identifier\n     */\n    customerId: number | null | undefined;\n\n    /**\n     * The customer code\n     */\n    customerCode: string | null | undefined;\n\n    /**\n     * The customer info\n     */\n    customerInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AddressChild } from './addressChild';\n\n\nexport class CustomerResponse {\n    /**\n     * The customer identifier\n     */\n    customerId: number | null | undefined;\n\n    /**\n     * The customer code\n     */\n    customerCode: string | null | undefined;\n\n    /**\n     * The customer info\n     */\n    customerInfo: string | null | undefined;\n\n    address: AddressChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class DashboardAdministrator {\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class DashboardAdministratorClassPermission {\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class DashboardAndMapsModule {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class DashboardAndMapsModuleClassPermission {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class DashboardCopy {\n    /**\n     * The Dashboard Title If null, this will default to the copied dashboard's name with ' - Copy' appended <span class='property-internal'>Must be between 0 and 255 characters</span>\n     */\n    dashboardInfo: string | null | undefined;\n\n    /**\n     * The dashboard description If null, this will default to the copied dashboard's description <span class='property-internal'>Must be between 0 and 255 characters</span>\n     */\n    description: string | null | undefined;\n\n    /**\n     * Flag to indicate if the dashboard is public If null, this will default to false\n     */\n    public: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class DashboardCreate {\n    /**\n     * The Dashboard Title <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 255 characters</span>\n     */\n    dashboardInfo: string | null ;\n\n    /**\n     * The dashboard description <span class='property-internal'>Must be between 0 and 255 characters</span>\n     */\n    description: string | null | undefined;\n\n    /**\n     * The dashboard type <span class='property-internal'>One of 'User', 'Map'</span>\n     */\n    type: string | null | undefined;\n\n    /**\n     * Flag to indicate if the dashboard is public\n     */\n    public: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class DashboardEdit {\n    /**\n     * The Dashboard Title <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 255 characters</span>\n     */\n    dashboardInfo: string | null ;\n\n    /**\n     * The dashboard description <span class='property-internal'>Must be between 0 and 255 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    description: string | null | undefined;\n\n    /**\n     * The dashboard type <span class='property-internal'>One of 'User', 'Map'</span> <span class='property-internal'>Required (defined)</span>\n     */\n    type: string | null | undefined;\n\n    /**\n     * Flag to indicate if the dashboard is public <span class='property-internal'>Required</span>\n     */\n    public: boolean | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PlaceChild } from './placeChild';\nimport { PlaceGroupChild } from './placeGroupChild';\n\n\nexport class DashboardGlobalSettings {\n    /**\n     * Flag to indicate if public-facing links to the application should be displayed\n     */\n    showLinks: boolean | null | undefined;\n\n    /**\n     * Flag to indicate if title/description should be displayed\n     */\n    showInfo: boolean | null | undefined;\n\n    /**\n     * Visibility of dashboard filter. Values are Show, Hide, or Fixed. Show - Filter controls are shown on the dashboard, filter can be temporarily set by anybody who can view the dashboard, including public viewers Hide - Filter controls are hidden, filter cannot be set, dashboard will be filtered using the topmost place of the user that creates the dashboard Fixed - Filter controls are hidden, a fixed filter is applied to the dashboard\n     */\n    globalFilterVisibility: string | null | undefined;\n\n    /**\n     * If GlobalFilterVisibility is Fixed, this is the type of filter currently applied to this dashboard. Values are either TopmostPlace or BuildingGroup, or blank if GlobalFilterVisibility is not Fixed. TopmostPlace - Filters the dashboard by a topmost place BuildingGroup - Filters the dashboard by a building group\n     */\n    globalFilterType: string | null | undefined;\n\n    topmostPlace: PlaceChild | null | undefined;\n\n    buildingGroup: PlaceGroupChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class DashboardGlobalSettingsEdit {\n    /**\n     * Flag to indicate if public-facing links to the application should be displayed <span class='property-internal'>Required (defined)</span>\n     */\n    showLinks: boolean | null | undefined;\n\n    /**\n     * Flag to indicate if title/description should be displayed <span class='property-internal'>Required (defined)</span>\n     */\n    showInfo: boolean | null | undefined;\n\n    /**\n     * Visibility of dashboard filter. Valid values are Show, Hide, or Fixed. If settings are applied to a Map dashboard, this is automatically set to Fixed, and any other filter settings are automatically nulled. Show - Filter controls will be show on the dashboard, filter can be temporarily set by anybody who can view the dashboard, including public viewers. Hide - Filter controls will be hidden, manual filtering will be disabled, dashboard will be filtered using the topmost place of the user who applies the settings Fixed - Filter controls will be hidden, dashboard will be filtered using the specified Topmost Place or Building Group. PlaceID or PlaceGroupID are required when this field is set to Fixed. <span class='property-internal'>One of 'Show', 'Hide', 'Fixed'</span>\n     */\n    globalFilterVisibility: string | null | undefined;\n\n    /**\n     * The Identifier for the Topmost Place the dashboard should filter by. Required when GlobalFilterVisibility is Fixed. Set to null if GlobalFilterVisibility is set to Show or Hide. <span class='property-internal'>Only one of PlaceID, PlaceGroupID can be set</span>\n     */\n    placeId: number | null | undefined;\n\n    /**\n     * The Identifier for the Building Group the dashboard should filter by. Required when GlobalFilterVisibility is Fixed. Set to null if GlobalFilterVisibility is set to Show or Hide. <span class='property-internal'>Only one of PlaceID, PlaceGroupID can be set</span>\n     */\n    placeGroupId: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { DashboardGlobalSettings } from './dashboardGlobalSettings';\nimport { UserChild } from './userChild';\n\n\nexport class DashboardResponse {\n    /**\n     * The dashboard identifier\n     */\n    dashboardId: number | null | undefined;\n\n    /**\n     * The dashboard info\n     */\n    dashboardInfo: string | null | undefined;\n\n    /**\n     * The dashboard description\n     */\n    description: string | null | undefined;\n\n    /**\n     * The dashboard type\n     */\n    type: string | null | undefined;\n\n    createdBy: UserChild | null | undefined;\n\n    /**\n     * The date and time the dashboard was created\n     */\n    createdDate: Date | null | undefined;\n\n    /**\n     * The date and time of the most recent modification\n     */\n    modifiedDate: Date | null | undefined;\n\n    /**\n     * Flag to indicate if the dashboard is shared at all This means the dashboard is shared with everyone, shared with a user, or shared with a user group\n     */\n    shared: boolean | null | undefined;\n\n    /**\n     * Flag to indicate if dashboard should show in the caller's tree\n     */\n    visible: boolean | null | undefined;\n\n    /**\n     * The date and time of the last time this dashboard was viewed by the caller\n     */\n    lastViewed: Date | null | undefined;\n\n    /**\n     * If the dashboard is public, this value holds the public key that allows the dashboard to be embedded\n     */\n    key: string | null | undefined;\n\n    /**\n     * Flag to indicate if the dashboard is public\n     */\n    public: boolean | null | undefined;\n\n    dashboardGlobalSettings: DashboardGlobalSettings | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { DataAccessReleaseMetaData } from './dataAccessReleaseMetaData';\n\n\nexport class DataAccessRelease {\n    /**\n     * Data Access Release Identifier\n     */\n    dataAccessReleaseId: number | null | undefined;\n\n    metaData: DataAccessReleaseMetaData | null | undefined;\n\n    /**\n     * File name of the uploaded release form This is only saved on a manual data release request Null when request was completed by email\n     */\n    releaseForm: string | null | undefined;\n\n    /**\n     * Date and time the data release request was submitted\n     */\n    submittedDate: Date | null | undefined;\n\n    /**\n     * Email address of the person who completed the request\n     */\n    submittedBy: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class DataAccessReleaseMetaData {\n    /**\n     * \n     */\n    accountNumber: string | null | undefined;\n\n    /**\n     * \n     */\n    nameOnBill: string | null | undefined;\n\n    /**\n     * \n     */\n    serviceAddress: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class DataAccessReleaseNoFileRequest {\n    /**\n     * Account Number Should be a 12 digit number starting with 2. <span class='property-internal'>Required</span>\n     */\n    accountNumber: string | null ;\n\n    /**\n     *  <span class='property-internal'>Required</span>\n     */\n    nameOnBill: string | null ;\n\n    /**\n     *  <span class='property-internal'>Required</span>\n     */\n    serviceAddress: string | null ;\n\n    /**\n     * Is the data release declined If true is passed the data provider must support declining a data release otherwise this will throw an exception\n     */\n    declined: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class DataAccessReleaseRequest {\n    /**\n     * The response from uploading the file to the file store API: POST  /api/v202105/fileStore/fileDataType/{fileDataTypeId}/upload SDK Operation: UploadFile\n     */\n    dataReleaseFile: string | null | undefined;\n\n    /**\n     * Account Number Should be a 12 digit number starting with 2. <span class='property-internal'>Required</span>\n     */\n    accountNumber: string | null ;\n\n    /**\n     *  <span class='property-internal'>Required</span>\n     */\n    nameOnBill: string | null ;\n\n    /**\n     *  <span class='property-internal'>Required</span>\n     */\n    serviceAddress: string | null ;\n\n    /**\n     * Is the data release declined If true is passed the data provider must support declining a data release otherwise this will throw an exception\n     */\n    declined: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { DataAccessReleaseStatus } from './dataAccessReleaseStatus';\n\n\nexport class DataAccessReleaseState {\n    /**\n     * The date that the data access release was submitted. Null if there is not a release yet.\n     */\n    submittedDate: Date | null | undefined;\n\n    releaseStatus: DataAccessReleaseStatus | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class DataAccessReleaseStatus {\n    /**\n     * Id of the Data Access Release Status Possible values are:     1 - Not Applicable     2 - Required     3 - Pending     4 - Released     5 - Declined\n     */\n    dataAccessReleaseStatusId: number | null | undefined;\n\n    /**\n     * Data Access Release Status Information Possible values are:  Not Applicable  Required  Pending   Released   Declined\n     */\n    dataAccessReleaseStatusInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CommodityChild } from './commodityChild';\n\n\nexport class DataPointChild {\n    /**\n     * The data point identifier\n     */\n    dataPointId: number | null | undefined;\n\n    /**\n     * The data point code\n     */\n    dataPointCode: string | null | undefined;\n\n    /**\n     * The data point info\n     */\n    dataPointInfo: string | null | undefined;\n\n    commodity: CommodityChild | null | undefined;\n\n    /**\n     * Indicates whether the data point is Active\n     */\n    active: boolean | null | undefined;\n\n    /**\n     * Indicates whether the data point is a calculated data point\n     */\n    isCalculatedDataPoint: boolean | null | undefined;\n\n    /**\n     * The data point's current serial number\n     */\n    serialNumber: string | null | undefined;\n\n    /**\n     * Indicates if the primary value channel on the datapoint has a summarization method of SUM\n     */\n    isDataRolledUp: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CommodityChild } from './commodityChild';\nimport { PlaceChild } from './placeChild';\n\n\nexport class DataPointChildWithParentAndImportId {\n    parentPlace: PlaceChild | null | undefined;\n\n    /**\n     * The import identifier for the data point\n     */\n    dataPointImportId: string | null | undefined;\n\n    /**\n     * The data point identifier\n     */\n    dataPointId: number | null | undefined;\n\n    /**\n     * The data point code\n     */\n    dataPointCode: string | null | undefined;\n\n    /**\n     * The data point info\n     */\n    dataPointInfo: string | null | undefined;\n\n    commodity: CommodityChild | null | undefined;\n\n    /**\n     * Indicates whether the data point is Active\n     */\n    active: boolean | null | undefined;\n\n    /**\n     * Indicates whether the data point is a calculated data point\n     */\n    isCalculatedDataPoint: boolean | null | undefined;\n\n    /**\n     * The data point's current serial number\n     */\n    serialNumber: string | null | undefined;\n\n    /**\n     * Indicates if the primary value channel on the datapoint has a summarization method of SUM\n     */\n    isDataRolledUp: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\n/**\n * \n */\nexport class DataPointCreate {\n    /**\n     * The Data Point code <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 50 characters</span>\n     */\n    dataPointCode: string | null ;\n\n    /**\n     * The Data Point name <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 50 characters</span>\n     */\n    dataPointInfo: string | null ;\n\n    /**\n     * The place this Data Point is assigned to <span class='property-internal'>Topmost (Space)</span> <span class='property-internal'>Required</span>\n     */\n    esaPlaceId: number | null ;\n\n    /**\n     * The Commodity (type) of the Data Point <span class='property-internal'>Required</span>\n     */\n    commodityId: number | null ;\n\n    /**\n     * The Data Point description <span class='property-internal'>Must be between 0 and 4000 characters</span>\n     */\n    dataPointDescription: string | null | undefined;\n\n    /**\n     * The identifier for the Data Point's time zone.  If the place Data Point is under a site this must be left null or set to the same time zone as the site.\n     */\n    dataPointTimeZoneId: number | null | undefined;\n\n    /**\n     * The serial number of the Data Point <span class='property-internal'>Must be between 0 and 255 characters</span>\n     */\n    serialNumber: string | null | undefined;\n\n    /**\n     * The model of the Data Point <span class='property-internal'>Must be between 0 and 50 characters</span>\n     */\n    model: string | null | undefined;\n\n    /**\n     * The import identifier of the Data Point <span class='property-internal'>Must be between 0 and 255 characters</span>\n     */\n    importId: string | null | undefined;\n\n    /**\n     * The latitude of the Data Point,  if set it overrides the latitude of it's parent Place <span class='property-internal'>Must be between -90 and 90</span> <span class='property-internal'>Required when LongitudeOverride is set</span>\n     */\n    latitudeOverride: number | null | undefined;\n\n    /**\n     * The longitude of the Data Point,  if set it overrides the longitude of it's parent Place <span class='property-internal'>Must be between -180 and 180</span> <span class='property-internal'>Required when LatitudeOverride is set</span>\n     */\n    longitudeOverride: number | null | undefined;\n\n    /**\n     * The manufacturer of the Data Point\n     */\n    manufacturerId: number | null | undefined;\n\n    /**\n     * The primary use of the Data Point\n     */\n    primaryUseId: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class DataPointEdit {\n    /**\n     * Indicates if the data point is active <span class='property-internal'>Required (defined)</span>\n     */\n    active: boolean | null | undefined;\n\n    /**\n     * The Data Point code <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 50 characters</span>\n     */\n    dataPointCode: string | null ;\n\n    /**\n     * The Data Point name <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 50 characters</span>\n     */\n    dataPointInfo: string | null ;\n\n    /**\n     * The place this Data Point is assigned to <span class='property-internal'>Topmost (Space)</span> <span class='property-internal'>Required</span>\n     */\n    esaPlaceId: number | null ;\n\n    /**\n     * The Commodity (type) of the Data Point <span class='property-internal'>Required</span>\n     */\n    commodityId: number | null ;\n\n    /**\n     * The Data Point description <span class='property-internal'>Must be between 0 and 4000 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    dataPointDescription: string | null | undefined;\n\n    /**\n     * The identifier for the Data Point's time zone.  If the place Data Point is under a site this must be left null or set to the same time zone as the site. <span class='property-internal'>Required (defined)</span>\n     */\n    dataPointTimeZoneId: number | null | undefined;\n\n    /**\n     * The serial number of the Data Point <span class='property-internal'>Must be between 0 and 255 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    serialNumber: string | null | undefined;\n\n    /**\n     * The model of the Data Point <span class='property-internal'>Must be between 0 and 50 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    model: string | null | undefined;\n\n    /**\n     * The import identifier of the Data Point <span class='property-internal'>Must be between 0 and 255 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    importId: string | null | undefined;\n\n    /**\n     * The latitude of the Data Point,  if set it overrides the latitude of it's parent Place <span class='property-internal'>Must be between -90 and 90</span> <span class='property-internal'>Required when LongitudeOverride is set</span>\n     */\n    latitudeOverride: number | null | undefined;\n\n    /**\n     * The longitude of the Data Point,  if set it overrides the longitude of it's parent Place <span class='property-internal'>Must be between -180 and 180</span> <span class='property-internal'>Required when LatitudeOverride is set</span>\n     */\n    longitudeOverride: number | null | undefined;\n\n    /**\n     * The manufacturer of the Data Point <span class='property-internal'>Required (defined)</span>\n     */\n    manufacturerId: number | null | undefined;\n\n    /**\n     * The primary use of the Data Point <span class='property-internal'>Required (defined)</span>\n     */\n    primaryUseId: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CommodityChild } from './commodityChild';\nimport { EsaChannelChild } from './esaChannelChild';\nimport { ManufacturerChild } from './manufacturerChild';\nimport { PlaceChild } from './placeChild';\nimport { PrimaryUseChild } from './primaryUseChild';\nimport { TimeZoneChild } from './timeZoneChild';\nimport { UserChild } from './userChild';\n\n\n/**\n * \n */\nexport class DataPointResponse {\n    /**\n     * The identifier for the Data Point\n     */\n    dataPointId: number | null | undefined;\n\n    /**\n     * The Data Point code\n     */\n    dataPointCode: string | null | undefined;\n\n    /**\n     * The Data Point name\n     */\n    dataPointInfo: string | null | undefined;\n\n    /**\n     * The Data Point description\n     */\n    dataPointDescription: string | null | undefined;\n\n    /**\n     * Indicates whether the Data Point is active\n     */\n    active: boolean | null | undefined;\n\n    /**\n     * The serial number of the Data Point\n     */\n    serialNumber: string | null | undefined;\n\n    /**\n     * The model of the Data Point\n     */\n    model: string | null | undefined;\n\n    /**\n     * The import identifier of the Data Point\n     */\n    importId: string | null | undefined;\n\n    /**\n     * The latitude of the Data Point,  if set it overrides the latitude of it's parent Place\n     */\n    latitudeOverride: number | null | undefined;\n\n    /**\n     * The longitude of the Data Point,  if set it overrides the longitude of it's parent Place\n     */\n    longitudeOverride: number | null | undefined;\n\n    commodity: CommodityChild | null | undefined;\n\n    place: PlaceChild | null | undefined;\n\n    dataPointTimeZone: TimeZoneChild | null | undefined;\n\n    manufacturer: ManufacturerChild | null | undefined;\n\n    primaryUse: PrimaryUseChild | null | undefined;\n\n    createdBy: UserChild | null | undefined;\n\n    /**\n     * The date and time the Data Point was created\n     */\n    createdDate: Date | null | undefined;\n\n    modifiedBy: UserChild | null | undefined;\n\n    /**\n     * The date and time of the most recent modification of the Data Point\n     */\n    modifiedDate: Date | null | undefined;\n\n    /**\n     * An array of channels assigned to this Data Point\n     */\n    channels: Array<EsaChannelChild> | null | undefined;\n\n    /**\n     * Indicates if the primary value channel on the datapoint has a summarization method of SUM\n     */\n    isDataRolledUp: boolean | null | undefined;\n\n    /**\n     * Indicates if the Sentinel is active for primary value channels\n     */\n    sentinelEnabled: boolean | null | undefined;\n\n    /**\n     * Provides some insight into the current Sentinel enabled status.\n     */\n    sentinelStatus: DataPointResponse.SentinelStatusEnum;\n\n    sentinelModifiedBy: UserChild | null | undefined;\n\n}\nexport namespace DataPointResponse {\n    export enum SentinelStatusEnum {\n        NUMBER_1 = <any> 1,\n        NUMBER_2 = <any> 2,\n        NUMBER_3 = <any> 3,\n        NUMBER_4 = <any> 4,\n        NUMBER_5 = <any> 5\n    }\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class DataPointSentinel {\n    /**\n     * Indicates if the data point sentinel is enabled <span class='property-internal'>Required (defined)</span>\n     */\n    sentinelEnabled: boolean | null | undefined;\n\n    /**\n     * The reason the sentinel was deactivated <span class='property-internal'>Must be null when SentinelEnabled  is  set to True, case sensitive</span> <span class='property-internal'>Required (defined)</span>\n     */\n    sentinelDeactivatedReason: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class DataTypeResponse {\n    /**\n     *  <span class='property-internal'>Required (defined)</span>\n     */\n    dataTypeId: number | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Required (defined)</span>\n     */\n    dataTypeCode: string | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Required (defined)</span>\n     */\n    dataTypeInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\n/**\n * General purpose date range DTO\n */\nexport class DateRange {\n    /**\n     * The start date for the range\n     */\n    startDate: Date | null | undefined;\n\n    /**\n     * The end date for the range\n     */\n    endDate: Date | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class DayOfWeek {\n    /**\n     * Day of the week as represented by a number\n     */\n    dayOfWeekNumber: number | null | undefined;\n\n    /**\n     * Day of the week name\n     */\n    dayOfWeekName: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { ReadingDelete } from './readingDelete';\n\n\nexport class DeleteReadingResponse {\n    /**\n     * The number of readings deleted\n     */\n    deleted: number | null | undefined;\n\n    /**\n     * Data representing the failed reading deletion\n     */\n    failures: Array<ReadingDelete> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CommodityChild } from './commodityChild';\n\n\nexport class DestinationAccountMeterChild {\n    /**\n     * The AccountMeter identifier <span class='property-internal'>Required (defined)</span>\n     */\n    accountMeterId: number | null | undefined;\n\n    /**\n     * The Meter identifier for this AccountMeter <span class='property-internal'>Required (defined)</span>\n     */\n    meterId: number | null | undefined;\n\n    /**\n     * The code of the Meter for this AccountMeter <span class='property-internal'>Required (defined)</span>\n     */\n    meterCode: string | null | undefined;\n\n    /**\n     * The info of the Meter for this AccountMeter <span class='property-internal'>Required (defined)</span>\n     */\n    meterInfo: string | null | undefined;\n\n    commodity: CommodityChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { DestinationAccountMeterChild } from './destinationAccountMeterChild';\nimport { VendorChild } from './vendorChild';\n\n\nexport class DestinationAccountResponse {\n    /**\n     * The account identifier <span class='property-internal'>Required (defined)</span>\n     */\n    accountId: number | null | undefined;\n\n    /**\n     * The account code <span class='property-internal'>Required (defined)</span>\n     */\n    accountCode: string | null | undefined;\n\n    /**\n     * The account info <span class='property-internal'>Required (defined)</span>\n     */\n    accountInfo: string | null | undefined;\n\n    vendor: VendorChild | null | undefined;\n\n    /**\n     * An array of identifiers for meters attached to this account <span class='property-internal'>Required (defined)</span>\n     */\n    meters: Array<DestinationAccountMeterChild> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class DetailedGuidResponse {\n    /**\n     * The name of the file that was uploaded\n     */\n    fileName: string | null | undefined;\n\n    /**\n     * A guid that identifies the current task\n     */\n    taskGUId: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class DistributeAccountChargesBase {\n    /**\n     * Determines if account charges should be assigned proportionally based on the usage values of each meter or based on the bill cost from each meter. If not provided, defaults to \\\"Usage\\\". <span class='property-internal'>One of 'Usage', 'Cost', ''</span> <span class='property-internal'>Case sensitive</span> <span class='property-internal'>Required (defined)</span>\n     */\n    splitBasis: DistributeAccountChargesBase.SplitBasisEnum;\n\n}\nexport namespace DistributeAccountChargesBase {\n    export enum SplitBasisEnum {\n        NUMBER_0 = <any> 0,\n        NUMBER_1 = <any> 1\n    }\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class DistributeAccountChargesToBillsRequest {\n    /**\n     * Bill IDs for which account charges will be proportionally distributed to the meters <span class='property-internal'>Cannot be Empty</span> <span class='property-internal'>Required (defined)</span>\n     */\n    billIds: Array<number> | null | undefined;\n\n    /**\n     * Determines if account charges should be assigned proportionally based on the usage values of each meter or based on the bill cost from each meter. If not provided, defaults to \\\"Usage\\\". <span class='property-internal'>One of 'Usage', 'Cost', ''</span> <span class='property-internal'>Case sensitive</span> <span class='property-internal'>Required (defined)</span>\n     */\n    splitBasis: DistributeAccountChargesToBillsRequest.SplitBasisEnum;\n\n}\nexport namespace DistributeAccountChargesToBillsRequest {\n    export enum SplitBasisEnum {\n        NUMBER_0 = <any> 0,\n        NUMBER_1 = <any> 1\n    }\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { EmailProperties } from './emailProperties';\nimport { FilterEdit } from './filterEdit';\n\n\nexport class DistributedReportsConfiguration {\n    /**\n     * Desired format for the resulting report. Available options are PDF, Excel, Excel formatted, Excel data only, Word, and CSV. Support for each format varies by report.\n     */\n    format: string | null | undefined;\n\n    /**\n     * Indicates whether or not to use a copy of the report when generating it. When set to true, a one-time copy of the requested specific report will be created, set with the provided filters, and then deleted afterward.         This functionality is useful when you want to run a report with a one-time filter set, without touching the original report's filters.\n     */\n    useCopy: boolean | null | undefined;\n\n    /**\n     * List of filters to use when executing this report. How they are handled depends upon the other configuration options used in this request.\n     */\n    filters: Array<FilterEdit> | null | undefined;\n\n    /**\n     * Indicates whether or not to clear out stored filters for the requested report during execution. When set to true, any stored filters for this report will be removed. Only filters provided in the Filters property will be applied. When set to false, any stored filters will still apply when the report is executed.\n     */\n    clearFilters: boolean | null | undefined;\n\n    /**\n     * Indicates whether or not to save the filters provided in the Filters property. When set to true, any filters currently stored for the requested report will be overwritten with those provided in the Filters property. When set to false, any filters provided in the Filters property will not be saved after execution. However, they will be used for this report execution.\n     */\n    saveFilters: boolean | null | undefined;\n\n    /**\n     * Indicates whether or not to email a report if it contains no data. When set to true, if distributing the requested report to an email list and the report contains no data, the report will not be emailed. When set to false, if the requested report has no data, it will still be sent to the email list.\n     */\n    onlySendIfData: boolean | null | undefined;\n\n    /**\n     * Filename for the resulting report file. Do not provide file type suffix. Defaults to {specificReportCode}-{specificReportInfo}{fileNameExtension}\n     */\n    fileName: string | null | undefined;\n\n    distribution: EmailProperties | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class DistributedReportsSettings {\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class DistributedReportsSettingsClassPermission {\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class DistributionVersionManage {\n    /**\n     * Version id to update VersionId must exist on the account and meter relationship being updated <span class='property-internal'>Required (defined)</span> <span class='property-internal'>Only one of VersionId, CopyVersionId can be set</span>\n     */\n    versionId: number | null | undefined;\n\n    /**\n     * An existing version id on this account meter to copy A new version will be created and all instructions will be copied to the new version CopyVersionId chargeback type must match the chargeback type being managed (Either \\\"Split\\\" or \\\"Calculation\\\"). CopyVersionId must exist on the account and meter relationship being updated <span class='property-internal'>Required (defined)</span> <span class='property-internal'>Only one of VersionId, CopyVersionId can be set</span>\n     */\n    copyVersionId: number | null | undefined;\n\n    /**\n     * Name given to the version Name must be unique for a particular account and meter <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 64 characters</span>\n     */\n    name: string | null ;\n\n    /**\n     * Workflow step this version will belong to The workflow step type must match the chargeback type being managed (Either \\\"Split\\\" or \\\"Calculation\\\") <span class='property-internal'>Required (defined)</span>\n     */\n    workflowStepId: number | null | undefined;\n\n    /**\n     * Begin period for the version in the format YYYYMM Cannot overlap any existing versions on this account and meter for the chargeback type being managed <span class='property-internal'>Required</span> <span class='property-internal'>Valid billing period between 190001 and 300001</span>\n     */\n    beginPeriod: number | null ;\n\n    /**\n     * End period for the version in the format YYYYMM null value means continuing indefinitely Cannot overlap any existing versions on this account and meter for the chargeback type being managed <span class='property-internal'>Valid billing period between 190001 and 300001</span> <span class='property-internal'>NULL Valid</span> <span class='property-internal'>Must be greater than or equal to BeginPeriod</span> <span class='property-internal'>Required (defined)</span>\n     */\n    endPeriod: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AccountChildWithType } from './accountChildWithType';\nimport { ChargebackWorkflowStepChild } from './chargebackWorkflowStepChild';\nimport { MeterChild } from './meterChild';\n\n\nexport class DistributionVersionResponse {\n    /**\n     * Identifier for the version\n     */\n    versionId: number | null | undefined;\n\n    /**\n     * Name given to a version\n     */\n    versionInfo: string | null | undefined;\n\n    /**\n     * The chargeback type.  Either \\\"Split\\\" or \\\"Calculation\\\"\n     */\n    chargebackType: string | null | undefined;\n\n    /**\n     * Begin period for the version\n     */\n    beginPeriod: number | null | undefined;\n\n    /**\n     * End period for the version null value means continuing indefinitely\n     */\n    endPeriod: number | null | undefined;\n\n    account: AccountChildWithType | null | undefined;\n\n    meter: MeterChild | null | undefined;\n\n    workflow: ChargebackWorkflowStepChild | null | undefined;\n\n    /**\n     * Do any bills exist that were created by this version? A version cannot be deleted if there are any existing bills that were created using this version\n     */\n    hasBills: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class DueDateTooLongAfterBillEndSettingRequest {\n    /**\n     * Threshold for how long the due date can be after the end date If SettingStatus is set to Skip and no value is provided, EnergyCAP default will be set <span class='property-internal'>Must be between 0 and 2147483647</span> <span class='property-internal'>Required when SettingStatus is set to Check, or Hold</span>\n     */\n    days: number | null | undefined;\n\n    /**\n     * The status of the audit setting <span class='property-internal'>One of 'Check', 'Hold', 'Skip'</span> <span class='property-internal'>Required (defined)</span>\n     */\n    settingStatus: string | null | undefined;\n\n    /**\n     * Minimum Bill/Meter Cost.  This audit will run only when the cost meets the specified minimum cost <span class='property-internal'>Required (defined)</span>\n     */\n    minimumCost: number | null | undefined;\n\n    /**\n     * List of Assignees.  Ids of the users the flag should get assigned to when the audit fails. <span class='property-internal'>Required (defined)</span>\n     */\n    assignees: Array<number> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { UserChild } from './userChild';\n\n\nexport class DueDateTooLongAfterBillEndSettingResponse {\n    /**\n     * Threshold for how long the due date can be after the end date If SettingStatus is set to Skip and no value is provided, EnergyCAP default will be set\n     */\n    days: number | null | undefined;\n\n    /**\n     * The status of the audit setting - Possible values Check, Hold, Skip\n     */\n    settingStatus: string | null | undefined;\n\n    /**\n     * The setting code\n     */\n    settingCode: string | null | undefined;\n\n    /**\n     * A description of the setting\n     */\n    settingDescription: string | null | undefined;\n\n    /**\n     * Minimum Bill/Meter Cost.  This audit wwill run only when the cost meets the specified minimum cost\n     */\n    minimumCost: number | null | undefined;\n\n    /**\n     * List of Assignees.  UserChildDTO representing the users the flag should get assigned to when the audit fails.\n     */\n    assignees: Array<UserChild> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { QuickFilter } from './quickFilter';\n\n\nexport class DynamicListRequest {\n    /**\n     * Filters to apply to the dynamic list when initializing it <span class='property-internal'>Cannot be Empty</span>\n     */\n    filters: Array<QuickFilter> | null | undefined;\n\n    /**\n     * Flag indicating whether or not to initialize the dynamic list column definitions\n     */\n    resetColumns: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\n/**\n * Defines details for a dynamic percentage split of use, cost, or both based on the use or cost values of the meters in the destination meter group.\n */\nexport class DynamicPercentageBillSplit {\n    /**\n     * ID of a meter group to receive the results of the split bill. <span class='property-internal'>Required</span>\n     */\n    destinationMeterGroupId: number | null ;\n\n    /**\n     * Value to distribute to the destination meters. <span class='property-internal'>Required</span> <span class='property-internal'>One of 'use', 'cost', 'useAndCost'</span>\n     */\n    sourceValueToSplit: string | null ;\n\n    /**\n     * Value to define how dynamic percentages are calculated. <span class='property-internal'>Required</span> <span class='property-internal'>One of 'use', 'cost'</span>\n     */\n    destinationShareValue: string | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { MeterGroupChild } from './meterGroupChild';\n\n\n/**\n * Defines details for a dynamic percentage split of use, cost, or both based on the use or cost values of the meters in the destination meter group.\n */\nexport class DynamicPercentageBillSplitResponse {\n    destinationMeterGroup: MeterGroupChild | null | undefined;\n\n    /**\n     * Value to distribute to the destination meters \\\"use\\\", \\\"cost\\\", or \\\"useAndCost\\\"\n     */\n    sourceValueToSplit: string | null | undefined;\n\n    /**\n     * Value to define how dynamic percentages are calculated. \\\"use\\\" or \\\"cost\\\"\n     */\n    destinationShareValue: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class ENERGYSTARSubmissions {\n    /**\n     * \n     */\n    run: boolean | null | undefined;\n\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ENERGYSTARSubmissionsClassPermission {\n    /**\n     * \n     */\n    run: boolean | null | undefined;\n\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { EsaPlaceSizeCreate } from './esaPlaceSizeCreate';\n\n\nexport class EditEsaPlaceSizesRequest {\n    /**\n     *  <span class='property-internal'>Required (defined)</span>\n     */\n    calculateArea: boolean | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Must be null when CalculateArea  is  set to True, case sensitive</span> <span class='property-internal'>Required (defined)</span>\n     */\n    placeSizes: Array<EsaPlaceSizeCreate> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class EmailProperties {\n    /**\n     *  <span class='property-internal'>Required</span>\n     */\n    subject: string | null ;\n\n    /**\n     * \n     */\n    body: string | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Cannot be Empty</span>\n     */\n    recipients: Array<string> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class EmissionRecordRequest {\n    /**\n     * The Emission Source this record will be assigned to <span class='property-internal'>Required</span>\n     */\n    emissionSourceId: number | null ;\n\n    /**\n     * The begin date for this record <span class='property-internal'>Required</span>\n     */\n    beginDate: Date | null ;\n\n    /**\n     * The end date for this record <span class='property-internal'>Required</span> <span class='property-internal'>Must be greater than BeginDate</span>\n     */\n    endDate: Date | null ;\n\n    /**\n     * The supplier for this record <span class='property-internal'>Required (defined)</span>\n     */\n    vendorId: number | null | undefined;\n\n    /**\n     * The type of this record. Valid values are: 1 - Use 2 - Cost 3 - Direct/Offset <span class='property-internal'>Required</span> <span class='property-internal'>One of '1', '2', '3'</span> <span class='property-internal'>Case sensitive</span>\n     */\n    recordTypeId: number | null ;\n\n    /**\n     * The scope category for this record <span class='property-internal'>Required</span>\n     */\n    scopeCategoryId: number | null ;\n\n    /**\n     * The factor for this record <span class='property-internal'>Required</span>\n     */\n    factorId: number | null ;\n\n    /**\n     * The use that is being tracked by this record.  This value is required if RecordTypeId is set to 1 (Use) or 3 (Direct/Offset),  but must be left null if RecordTypeId is set to 2 (Cost). <span class='property-internal'>Required when RecordTypeId is set to 1, or 3, case sensitive.</span> <span class='property-internal'>Must be null when RecordTypeId  is  set to 2, case sensitive</span>\n     */\n    quantity: number | null | undefined;\n\n    /**\n     * The unit for the use being tracked by this record. This value is required if RecordTypeId is set to 1 (Use) or 3 (Direct/Offset), but must be left null if RecordTypeId is set to 2 (Cost). <span class='property-internal'>Required when RecordTypeId is set to 1, or 3, case sensitive.</span> <span class='property-internal'>Must be null when RecordTypeId  is  set to 2, case sensitive</span>\n     */\n    quantityUnitId: number | null | undefined;\n\n    /**\n     * The cost for this record Required if RecordTypeId is set to 2 (Cost), otherwise it is optional. <span class='property-internal'>Required when RecordTypeId is set to 2, case sensitive.</span> <span class='property-internal'>Required when CostUnitId is set</span>\n     */\n    cost: number | null | undefined;\n\n    /**\n     * The unit for this record's cost. Required if RecordTypeId is set to 2 (Cost), otherwise it is optional. <span class='property-internal'>Required when RecordTypeId is set to 2, case sensitive.</span> <span class='property-internal'>Required when Cost is set</span>\n     */\n    costUnitId: number | null | undefined;\n\n    /**\n     * The note for this record <span class='property-internal'>Must be between 0 and 255 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    note: string | null | undefined;\n\n    /**\n     * The attachment for this record <span class='property-internal'>Must be between 0 and 260 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    attachment: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CostConversionBase } from './costConversionBase';\nimport { EmissionRecordType } from './emissionRecordType';\nimport { EmissionSourceChild } from './emissionSourceChild';\nimport { GHGFactorChild } from './gHGFactorChild';\nimport { GHGGroupEmissions } from './gHGGroupEmissions';\nimport { GHGScopeCategoryChild } from './gHGScopeCategoryChild';\nimport { UserChild } from './userChild';\nimport { ValueWithUnit } from './valueWithUnit';\nimport { VendorChild } from './vendorChild';\n\n\nexport class EmissionRecordResponse {\n    /**\n     * The record identifier\n     */\n    emissionRecordId: number | null | undefined;\n\n    /**\n     * The bill identifier, if this record originated from a bill in UtilityManagement\n     */\n    billId: number | null | undefined;\n\n    emissionSource: EmissionSourceChild | null | undefined;\n\n    vendor: VendorChild | null | undefined;\n\n    /**\n     * The start date for the record\n     */\n    startDate: Date | null | undefined;\n\n    /**\n     * The end date for the record\n     */\n    endDate: Date | null | undefined;\n\n    /**\n     * The bill's billing period, if this record originated from a bill in UtilityManagement\n     */\n    billingPeriod: number | null | undefined;\n\n    emissionRecordType: EmissionRecordType | null | undefined;\n\n    scopeCategory: GHGScopeCategoryChild | null | undefined;\n\n    factor: GHGFactorChild | null | undefined;\n\n    quantity: ValueWithUnit | null | undefined;\n\n    cost: ValueWithUnit | null | undefined;\n\n    systemCost: ValueWithUnit | null | undefined;\n\n    costConversion: CostConversionBase | null | undefined;\n\n    /**\n     * The total GHG emissions for this record in kgCO2e.\n     */\n    totalEmissions: number | null | undefined;\n\n    /**\n     * The GHG emissions for this record, split by greenhouse gas type\n     */\n    emissionValues: Array<GHGGroupEmissions> | null | undefined;\n\n    /**\n     * The note for this record\n     */\n    note: string | null | undefined;\n\n    /**\n     * The attachment for this record\n     */\n    attachment: string | null | undefined;\n\n    createdBy: UserChild | null | undefined;\n\n    /**\n     * The date this record was created\n     */\n    createdDate: Date | null | undefined;\n\n    modifiedBy: UserChild | null | undefined;\n\n    /**\n     * The date this record was last modified\n     */\n    modifiedDate: Date | null | undefined;\n\n    /**\n     * The emission record creation method\n     */\n    creationMethod: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class EmissionRecordType {\n    /**\n     * Id of the emission record type\n     */\n    emissionRecordTypeId: number | null | undefined;\n\n    /**\n     * Name of the emission record type\n     */\n    emissionRecordTypeInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CommodityChild } from './commodityChild';\n\n\nexport class EmissionSourceChild {\n    /**\n     * The emission source identifier\n     */\n    emissionSourceId: number | null | undefined;\n\n    /**\n     * The emission source code\n     */\n    emissionSourceCode: string | null | undefined;\n\n    /**\n     * The emission source info\n     */\n    emissionSourceInfo: string | null | undefined;\n\n    commodity: CommodityChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AddressChildBase } from './addressChildBase';\nimport { GHGDefaultFactor } from './gHGDefaultFactor';\n\n\nexport class EmissionSourceCreate {\n    /**\n     * The default scope category for the emission source <span class='property-internal'>Required</span>\n     */\n    defaultScopeCategoryId: number | null ;\n\n    defaultEmissionFactor: GHGDefaultFactor | null ;\n\n    /**\n     * The emission source code <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 32 characters</span>\n     */\n    emissionSourceCode: string | null ;\n\n    /**\n     * The emission source info <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 64 characters</span>\n     */\n    emissionSourceInfo: string | null ;\n\n    /**\n     * The emission source's commodity <span class='property-internal'>Required</span>\n     */\n    commodityId: number | null ;\n\n    /**\n     * The collection to which the emission source belongs <span class='property-internal'>Required</span> <span class='property-internal'>Topmost (Collection)</span>\n     */\n    collectionId: number | null ;\n\n    /**\n     * The emission source note <span class='property-internal'>Must be between 0 and 255 characters</span>\n     */\n    note: string | null | undefined;\n\n    address: AddressChildBase | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AddressChildBase } from './addressChildBase';\nimport { GHGDefaultFactor } from './gHGDefaultFactor';\n\n\nexport class EmissionSourceEdit {\n    /**\n     * Is the emission source active <span class='property-internal'>Required</span>\n     */\n    active: boolean | null ;\n\n    /**\n     * The default scope category for the emission source <span class='property-internal'>Required</span>\n     */\n    defaultScopeCategoryId: number | null ;\n\n    defaultEmissionFactor: GHGDefaultFactor | null ;\n\n    /**\n     * The emission source code <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 32 characters</span>\n     */\n    emissionSourceCode: string | null ;\n\n    /**\n     * The emission source info <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 64 characters</span>\n     */\n    emissionSourceInfo: string | null ;\n\n    /**\n     * The emission source's commodity <span class='property-internal'>Required</span>\n     */\n    commodityId: number | null ;\n\n    /**\n     * The collection to which the emission source belongs <span class='property-internal'>Required</span> <span class='property-internal'>Topmost (Collection)</span>\n     */\n    collectionId: number | null ;\n\n    /**\n     * The emission source note <span class='property-internal'>Must be between 0 and 255 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    note: string | null | undefined;\n\n    address: AddressChildBase | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { GHGasFactorAndScopeCategoryPairCreate } from './gHGasFactorAndScopeCategoryPairCreate';\n\n\nexport class EmissionSourceFactorCategoryBulkUpdate {\n    /**\n     * A list of emission source IDs to apply the specified factor/category pairs to <span class='property-internal'>Required (defined)</span>\n     */\n    emissionSourceIds: Array<number> | null | undefined;\n\n    /**\n     * A list of factor/category pairs to apply to the specified emission sources <span class='property-internal'>Required (defined)</span>\n     */\n    factorCategoryPairs: Array<GHGasFactorAndScopeCategoryPairCreate> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class EmissionSourceLink {\n    /**\n     * The identifier for an Emission source.\n     */\n    emissionSourceId: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class EmissionSourceLinkRequest {\n    /**\n     * The identifier for an Emission source. Set to null to remove the link. <span class='property-internal'>Topmost (EmissionSource)</span> <span class='property-internal'>Required (defined)</span>\n     */\n    emissionSourceId: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AddressChildBase } from './addressChildBase';\nimport { GHGasFactorAndScopeCategoryPairCreate } from './gHGasFactorAndScopeCategoryPairCreate';\n\n\nexport class EmissionSourceMultiFactorCreate {\n    /**\n     * A list of Factor and Scope Category pairings to be attached to this Emission Source\n     */\n    scopeCategoryEmissionFactorPairs: Array<GHGasFactorAndScopeCategoryPairCreate> | null | undefined;\n\n    /**\n     * The emission source code <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 32 characters</span>\n     */\n    emissionSourceCode: string | null ;\n\n    /**\n     * The emission source info <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 64 characters</span>\n     */\n    emissionSourceInfo: string | null ;\n\n    /**\n     * The emission source's commodity <span class='property-internal'>Required</span>\n     */\n    commodityId: number | null ;\n\n    /**\n     * The collection to which the emission source belongs <span class='property-internal'>Required</span> <span class='property-internal'>Topmost (Collection)</span>\n     */\n    collectionId: number | null ;\n\n    /**\n     * The emission source note <span class='property-internal'>Must be between 0 and 255 characters</span>\n     */\n    note: string | null | undefined;\n\n    address: AddressChildBase | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AddressChildBase } from './addressChildBase';\nimport { GHGasFactorAndScopeCategoryPairCreate } from './gHGasFactorAndScopeCategoryPairCreate';\n\n\nexport class EmissionSourceMultiFactorEdit {\n    /**\n     * Is the emission source active <span class='property-internal'>Required (defined)</span>\n     */\n    isActive: boolean | null | undefined;\n\n    /**\n     * A list of Factor and Scope Category pairings to be attached to this Emission Source <span class='property-internal'>Required (defined)</span>\n     */\n    scopeCategoryEmissionFactorPairs: Array<GHGasFactorAndScopeCategoryPairCreate> | null | undefined;\n\n    /**\n     * The emission source code <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 32 characters</span>\n     */\n    emissionSourceCode: string | null ;\n\n    /**\n     * The emission source info <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 64 characters</span>\n     */\n    emissionSourceInfo: string | null ;\n\n    /**\n     * The emission source's commodity <span class='property-internal'>Required</span>\n     */\n    commodityId: number | null ;\n\n    /**\n     * The collection to which the emission source belongs <span class='property-internal'>Required</span> <span class='property-internal'>Topmost (Collection)</span>\n     */\n    collectionId: number | null ;\n\n    /**\n     * The emission source note <span class='property-internal'>Must be between 0 and 255 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    note: string | null | undefined;\n\n    address: AddressChildBase | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AddressChild } from './addressChild';\nimport { CollectionChild } from './collectionChild';\nimport { CommodityChild } from './commodityChild';\nimport { GHGasFactorAndScopeCategoryPair } from './gHGasFactorAndScopeCategoryPair';\nimport { MeterLink } from './meterLink';\nimport { UserChild } from './userChild';\n\n\nexport class EmissionSourceMultiFactorResponse {\n    /**\n     * The pairs of Scope Categories and Emission Factors assigned to this Emission Source\n     */\n    scopeCategoryEmissionFactorPairs: Array<GHGasFactorAndScopeCategoryPair> | null | undefined;\n\n    /**\n     * The emission source identifier\n     */\n    emissionSourceId: number | null | undefined;\n\n    /**\n     * The emission source code\n     */\n    emissionSourceCode: string | null | undefined;\n\n    /**\n     * The emission source info\n     */\n    emissionSourceInfo: string | null | undefined;\n\n    collection: CollectionChild | null | undefined;\n\n    commodity: CommodityChild | null | undefined;\n\n    address: AddressChild | null | undefined;\n\n    createdBy: UserChild | null | undefined;\n\n    /**\n     * The date and time the emission source was created\n     */\n    createdDate: Date | null | undefined;\n\n    modifiedBy: UserChild | null | undefined;\n\n    /**\n     * The date and time of the most recent modification of the emission source\n     */\n    modifiedDate: Date | null | undefined;\n\n    /**\n     * The emission source description\n     */\n    note: string | null | undefined;\n\n    /**\n     * Indicates whether the emission source is active\n     */\n    active: boolean | null | undefined;\n\n    meter: MeterLink | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AddressChild } from './addressChild';\nimport { CollectionChild } from './collectionChild';\nimport { CommodityChild } from './commodityChild';\nimport { GHGFactorChild } from './gHGFactorChild';\nimport { GHGScopeCategoryChild } from './gHGScopeCategoryChild';\nimport { MeterLink } from './meterLink';\nimport { UserChild } from './userChild';\n\n\nexport class EmissionSourceResponse {\n    defaultScopeCategory: GHGScopeCategoryChild | null | undefined;\n\n    defaultEmissionFactor: GHGFactorChild | null | undefined;\n\n    /**\n     * The emission source identifier\n     */\n    emissionSourceId: number | null | undefined;\n\n    /**\n     * The emission source code\n     */\n    emissionSourceCode: string | null | undefined;\n\n    /**\n     * The emission source info\n     */\n    emissionSourceInfo: string | null | undefined;\n\n    collection: CollectionChild | null | undefined;\n\n    commodity: CommodityChild | null | undefined;\n\n    address: AddressChild | null | undefined;\n\n    createdBy: UserChild | null | undefined;\n\n    /**\n     * The date and time the emission source was created\n     */\n    createdDate: Date | null | undefined;\n\n    modifiedBy: UserChild | null | undefined;\n\n    /**\n     * The date and time of the most recent modification of the emission source\n     */\n    modifiedDate: Date | null | undefined;\n\n    /**\n     * The emission source description\n     */\n    note: string | null | undefined;\n\n    /**\n     * Indicates whether the emission source is active\n     */\n    active: boolean | null | undefined;\n\n    meter: MeterLink | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class EmissionsSources {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    create: boolean | null | undefined;\n\n    /**\n     * \n     */\n    edit: boolean | null | undefined;\n\n    /**\n     * \n     */\n    delete: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class EmissionsSourcesClassPermission {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    create: boolean | null | undefined;\n\n    /**\n     * \n     */\n    edit: boolean | null | undefined;\n\n    /**\n     * \n     */\n    delete: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class EmissionsSourcesModule {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class EmissionsSourcesModuleClassPermission {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class EnergyCapOptionsEnergyCapIDOptions {\n    /**\n     * \n     */\n    baseUrl: string | null | undefined;\n\n    /**\n     * \n     */\n    gatewayApiPath: string | null | undefined;\n\n    /**\n     * \n     */\n    gatewayApplicationUrlApiPath: string | null | undefined;\n\n    /**\n     * \n     */\n    loginAuthorityMap: { [key: string]: string; } | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class EnergyManagerModule {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class EnergyManagerModuleClassPermission {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class EnergyProjectCreate {\n    /**\n     * The place identifier\n     */\n    placeId: number | null | undefined;\n\n    /**\n     * The energy project code <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 128 characters</span>\n     */\n    energyProjectCode: string | null ;\n\n    /**\n     * The energy project info <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 128 characters</span>\n     */\n    energyProjectInfo: string | null ;\n\n    /**\n     * The energy project installation begin date\n     */\n    installationBeginDate: Date | null | undefined;\n\n    /**\n     * The energy project installation end date <span class='property-internal'>Must be greater than InstallationBeginDate</span>\n     */\n    installationEndDate: Date | null | undefined;\n\n    /**\n     * The energy project installation cost\n     */\n    installationCost: number | null | undefined;\n\n    /**\n     * The energy project type code <span class='property-internal'>Required</span>\n     */\n    energyProjectTypeCode: string | null ;\n\n    /**\n     * The rebate amount of energy project\n     */\n    utilityRebate: number | null | undefined;\n\n    /**\n     * The funding source of the project\n     */\n    fundingSource: string | null | undefined;\n\n    /**\n     * The project manager of the energy project\n     */\n    projectManager: string | null | undefined;\n\n    /**\n     * The miscellaneous note about the project\n     */\n    note: string | null | undefined;\n\n    /**\n     * The energy savings amount\n     */\n    energySavings: number | null | undefined;\n\n    /**\n     * The energy savings unit code\n     */\n    energySavingsUnitCode: string | null | undefined;\n\n    /**\n     * The cost savings amount\n     */\n    costSavings: number | null | undefined;\n\n    /**\n     * The cost savings unit code\n     */\n    costSavingsUnitCode: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class EnergyProjectEdit {\n    /**\n     * The place identifier <span class='property-internal'>Required (defined)</span>\n     */\n    placeId: number | null | undefined;\n\n    /**\n     * The energy project code <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 128 characters</span>\n     */\n    energyProjectCode: string | null ;\n\n    /**\n     * The energy project info <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 128 characters</span>\n     */\n    energyProjectInfo: string | null ;\n\n    /**\n     * The energy project installation begin date <span class='property-internal'>Required (defined)</span>\n     */\n    installationBeginDate: Date | null | undefined;\n\n    /**\n     * The energy project installation end date <span class='property-internal'>Must be greater than InstallationBeginDate</span> <span class='property-internal'>Required (defined)</span>\n     */\n    installationEndDate: Date | null | undefined;\n\n    /**\n     * The energy project installation cost <span class='property-internal'>Required (defined)</span>\n     */\n    installationCost: number | null | undefined;\n\n    /**\n     * The energy project type code <span class='property-internal'>Required</span>\n     */\n    energyProjectTypeCode: string | null ;\n\n    /**\n     * The rebate amount of energy project <span class='property-internal'>Required (defined)</span>\n     */\n    utilityRebate: number | null | undefined;\n\n    /**\n     * The funding source of the project <span class='property-internal'>Required (defined)</span>\n     */\n    fundingSource: string | null | undefined;\n\n    /**\n     * The project manager of the energy project <span class='property-internal'>Required (defined)</span>\n     */\n    projectManager: string | null | undefined;\n\n    /**\n     * The miscellaneous note about the project <span class='property-internal'>Required (defined)</span>\n     */\n    note: string | null | undefined;\n\n    /**\n     * The energy savings amount <span class='property-internal'>Required (defined)</span>\n     */\n    energySavings: number | null | undefined;\n\n    /**\n     * The energy savings unit code <span class='property-internal'>Required (defined)</span>\n     */\n    energySavingsUnitCode: string | null | undefined;\n\n    /**\n     * The cost savings amount <span class='property-internal'>Required (defined)</span>\n     */\n    costSavings: number | null | undefined;\n\n    /**\n     * The cost savings unit code <span class='property-internal'>Required (defined)</span>\n     */\n    costSavingsUnitCode: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class EnergyProjectPlaceChild {\n    /**\n     * The place identifier\n     */\n    placeId: number | null | undefined;\n\n    /**\n     * The place code\n     */\n    placeCode: string | null | undefined;\n\n    /**\n     * The place info\n     */\n    placeInfo: string | null | undefined;\n\n    /**\n     * Tells whether or not the place's data is rolled up to its parents.\n     */\n    isDataRolledUp: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CostSavingsChild } from './costSavingsChild';\nimport { EnergyProjectPlaceChild } from './energyProjectPlaceChild';\nimport { EnergyProjectType } from './energyProjectType';\nimport { EnergySavingsChild } from './energySavingsChild';\n\n\nexport class EnergyProjectResponse {\n    /**\n     * The energy project identifier\n     */\n    energyProjectId: number | null | undefined;\n\n    /**\n     * The energy project code\n     */\n    energyProjectCode: string | null | undefined;\n\n    /**\n     * The energy project info\n     */\n    energyProjectInfo: string | null | undefined;\n\n    /**\n     * The energy project installation begin date\n     */\n    installationBeginDate: Date | null | undefined;\n\n    /**\n     * The energy project installation end date\n     */\n    installationEndDate: Date | null | undefined;\n\n    /**\n     * The energy project installation cost\n     */\n    installationCost: number | null | undefined;\n\n    /**\n     * The rebate amount of energy project\n     */\n    utilityRebate: number | null | undefined;\n\n    /**\n     * The funding source of the project\n     */\n    fundingSource: string | null | undefined;\n\n    /**\n     * The project manager of the energy project\n     */\n    projectManager: string | null | undefined;\n\n    /**\n     * The miscellaneous note about the project\n     */\n    note: string | null | undefined;\n\n    energySavings: EnergySavingsChild | null | undefined;\n\n    costSavings: CostSavingsChild | null | undefined;\n\n    place: EnergyProjectPlaceChild | null | undefined;\n\n    energyProjectType: EnergyProjectType | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class EnergyProjectType {\n    /**\n     * The energy project type identifier\n     */\n    energyProjectTypeId: number | null | undefined;\n\n    /**\n     * The energy project type code\n     */\n    energyProjectTypeCode: string | null | undefined;\n\n    /**\n     * The energy project type  info\n     */\n    energyProjectTypeInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class EnergyProjectTypeCreate {\n    /**\n     * The energy project type code <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 16 characters</span>\n     */\n    energyProjectTypeCode: string | null ;\n\n    /**\n     * The energy project type  info <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 32 characters</span>\n     */\n    energyProjectTypeInfo: string | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { EnergySavingsUnit } from './energySavingsUnit';\n\n\nexport class EnergySavingsChild {\n    /**\n     * The energy savings amount\n     */\n    energySavings: number | null | undefined;\n\n    energySavingsUnit: EnergySavingsUnit | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class EnergySavingsUnit {\n    /**\n     * The energy savings unit identifier\n     */\n    energySavingsUnitId: number | null | undefined;\n\n    /**\n     * The energy savings unit code\n     */\n    energySavingsUnitCode: string | null | undefined;\n\n    /**\n     * The energy savings unit information\n     */\n    energySavingsUnitInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CommodityChild } from './commodityChild';\n\n\nexport class EnergyStarCommodityLinkChild {\n    /**\n     * The Portfolio Manager meter identifier\n     */\n    pmMeterId: number | null | undefined;\n\n    commodity: CommodityChild | null | undefined;\n\n    /**\n     * Indicates if the commodity is compatible with ENERGY STAR\n     */\n    energyStarCompatible: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class EnergyStarCommodityLinkRequest {\n    /**\n     * The commodity identifier <span class='property-internal'>Required</span>\n     */\n    commodityId: number | null ;\n\n    /**\n     * The Portfolio Manager meter identifier.  Set to null to unlink meter. <span class='property-internal'>Required (defined)</span>\n     */\n    pmMeterId: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { EnergyStarCommodityMeterTypeMappingChild } from './energyStarCommodityMeterTypeMappingChild';\nimport { Icon } from './icon';\nimport { UnitChild } from './unitChild';\n\n\nexport class EnergyStarCommodityMeterTypeMapping {\n    submissionUnit: UnitChild | null | undefined;\n\n    portfolioManagerCommodityMapping: EnergyStarCommodityMeterTypeMappingChild | null | undefined;\n\n    /**\n     * The commodity identifier\n     */\n    commodityId: number | null | undefined;\n\n    /**\n     * The commodity code\n     */\n    commodityCode: string | null | undefined;\n\n    /**\n     * The commodity info\n     */\n    commodityInfo: string | null | undefined;\n\n    commodityIcon: Icon | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PmCommodityChild } from './pmCommodityChild';\n\n\nexport class EnergyStarCommodityMeterTypeMappingChild {\n    /**\n     * The unit code in Portfolio Manager\n     */\n    pmUnitCode: string | null | undefined;\n\n    /**\n     * When true, auto-created Portfolio Manager meters of this commodity are serviced \\\"by delivery\\\" rather than \\\"by metering\\\"\n     */\n    isDelivery: boolean | null | undefined;\n\n    /**\n     * List of supported Portfolio Manager commodities for this ECAP Commodity Every entry includes the commodity code and whether the commodity is the default for Portfolio Manager\n     */\n    suportedPmCommoditiesWithDefault: Array<PmCommodityChild> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { MeterChild } from './meterChild';\nimport { UnitChild } from './unitChild';\n\n\nexport class EnergyStarMeterLinkChild {\n    meter: MeterChild | null | undefined;\n\n    /**\n     * The Portfolio Manager meter identifier\n     */\n    pmMeterId: number | null | undefined;\n\n    /**\n     * The meter's average use per day\n     */\n    usePerDay: number | null | undefined;\n\n    useUnit: UnitChild | null | undefined;\n\n    /**\n     * The meter's average cost per day\n     */\n    costPerDay: number | null | undefined;\n\n    costUnit: UnitChild | null | undefined;\n\n    /**\n     * Is this meter's commodity ENERGY STAR-compatible?\n     */\n    energyStarCompatible: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class EnergyStarMeterLinkRequest {\n    /**\n     * The meter identifier <span class='property-internal'>Required</span>\n     */\n    meterId: number | null ;\n\n    /**\n     * The Portfolio Manager meter identifier.  Set to null to unlink meter. <span class='property-internal'>Required (defined)</span>\n     */\n    pmMeterId: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { EnergyStarPlaceMetricsResponse } from './energyStarPlaceMetricsResponse';\nimport { PlaceChild } from './placeChild';\nimport { PlaceSizeChild } from './placeSizeChild';\nimport { SubmissionTypeResponse } from './submissionTypeResponse';\n\n\nexport class EnergyStarPlaceHierarchyResponse {\n    place: PlaceChild | null | undefined;\n\n    placeSize: PlaceSizeChild | null | undefined;\n\n    placeSubmissionType: SubmissionTypeResponse | null | undefined;\n\n    /**\n     * The status of the latest submission for this place\n     */\n    latestSubmissionStatus: string | null | undefined;\n\n    /**\n     * The date that the latest submission for this place occurred\n     */\n    latestSubmissionDate: Date | null | undefined;\n\n    /**\n     * The status of the latest metrics retrieval for this place\n     */\n    latestMetricsRetrievalStatus: string | null | undefined;\n\n    /**\n     * ENERGY STAR score data for the place If there are multiple places returned in the response, will be the most recent score\n     */\n    metrics: Array<EnergyStarPlaceMetricsResponse> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { EnergyStarCommodityLinkRequest } from './energyStarCommodityLinkRequest';\nimport { EnergyStarMeterLinkRequest } from './energyStarMeterLinkRequest';\n\n\nexport class EnergyStarPlaceLinkRequest {\n    /**\n     * The Portfolio Manager property identifier.  Set to null to unlink place. <span class='property-internal'>Required (defined)</span>\n     */\n    pmPropertyId: number | null | undefined;\n\n    /**\n     * List of meter links for this place If PmPropertyId is null to unlink the place then Meters should be null.   All meters under the place will be unlinked automatically. <span class='property-internal'>Required (defined)</span> <span class='property-internal'>Only one of Meters, Commodities can be set</span>\n     */\n    meters: Array<EnergyStarMeterLinkRequest> | null | undefined;\n\n    /**\n     * List of commodity links for this place If PmPropertyId is null to unlink the place then Commodities should be null.   All commodities under the place will be unlinked automatically. <span class='property-internal'>Required (defined)</span> <span class='property-internal'>Only one of Meters, Commodities can be set</span>\n     */\n    commodities: Array<EnergyStarCommodityLinkRequest> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { EnergyStarCommodityLinkChild } from './energyStarCommodityLinkChild';\nimport { EnergyStarMeterLinkChild } from './energyStarMeterLinkChild';\nimport { PlaceChild } from './placeChild';\n\n\nexport class EnergyStarPlaceLinkResponse {\n    place: PlaceChild | null | undefined;\n\n    /**\n     * The submit mode. Could be \\\"Meter\\\" or \\\"Commodity\\\"\n     */\n    submitMode: string | null | undefined;\n\n    /**\n     * una co             The Portfolio Manager property identifier\n     */\n    pmPropertyId: number | null | undefined;\n\n    /**\n     * List of meters for this place\n     */\n    meters: Array<EnergyStarMeterLinkChild> | null | undefined;\n\n    /**\n     * List of commodities for this place\n     */\n    commodities: Array<EnergyStarCommodityLinkChild> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class EnergyStarPlaceMetricsRequest {\n    /**\n     * The begin period for updating ENERGY STAR metrics <span class='property-internal'>Required</span> <span class='property-internal'>Valid billing period between 190001 and 300001</span>\n     */\n    beginPeriod: number | null ;\n\n    /**\n     * The end period for updating ENERGY STAR metrics If null, metrics will only be retrieved for the period specified in BeginPeriod\n     */\n    endPeriod: number | null | undefined;\n\n    /**\n     * List of place identifiers to for which to update metrics <span class='property-internal'>Required</span> <span class='property-internal'>Cannot be Empty</span>\n     */\n    placeIds: Array<number> | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class EnergyStarPlaceMetricsResponse {\n    /**\n     * The year and month for the ENERGY STAR score\n     */\n    calendarPeriod: number | null | undefined;\n\n    /**\n     * The ENERGY STAR score\n     */\n    score: number | null | undefined;\n\n    /**\n     * The date the score was received\n     */\n    dateReceived: Date | null | undefined;\n\n    /**\n     * The weather-normalized property energy use (kBtu)\n     */\n    siteEnergyUse: number | null | undefined;\n\n    /**\n     * The weather-normalized property energy use intensity (kBtu/ft²)\n     */\n    siteEnergyUseIntensity: number | null | undefined;\n\n    /**\n     * The national median ENERGY STAR score for the same type of property\n     */\n    nationalMedianScore: number | null | undefined;\n\n    /**\n     * The national median weather-normalized property energy use intensity (kBtu/ft²)\n     */\n    nationalMedianSiteEnergyUseIntensity: number | null | undefined;\n\n    /**\n     * The percent difference in the property energy use intensity vs. the national median\n     */\n    pctDiffNationalMedianSiteEnergyUseIntensity: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class EnergyStarPlaceSubmissionStatusChild {\n    /**\n     * The submission period\n     */\n    submissionPeriod: number | null | undefined;\n\n    /**\n     * The submission period display name.  Only populated if the submission period has a custom name.\n     */\n    submissionPeriodDisplayName: string | null | undefined;\n\n    /**\n     * The submission status:      Submitted  - submission has been made for this place and submission period     Incomplete - no submission has been made for this place and submission period, and current billing data is incomplete     Ready      - no submission has been made for this place and submission period, and current billing data is complete\n     */\n    submissionStatus: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { EnergyStarPlaceSubmissionStatusChild } from './energyStarPlaceSubmissionStatusChild';\nimport { PlaceSizeChild } from './placeSizeChild';\nimport { SubmissionTypeResponse } from './submissionTypeResponse';\n\n\nexport class EnergyStarPlaceSubmissionStatusResponse {\n    /**\n     * The place identifier\n     */\n    placeId: number | null | undefined;\n\n    /**\n     * The place name\n     */\n    placeInfo: string | null | undefined;\n\n    /**\n     * The place code\n     */\n    placeCode: string | null | undefined;\n\n    placeSubmissionType: SubmissionTypeResponse | null | undefined;\n\n    placeSize: PlaceSizeChild | null | undefined;\n\n    /**\n     * The list of submission periods and the submission status for each period\n     */\n    placeSubmissionStatus: Array<EnergyStarPlaceSubmissionStatusChild> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { MeterChild } from './meterChild';\nimport { UnitChild } from './unitChild';\n\n\nexport class EnergyStarPmMeter {\n    /**\n     * The Portfolio Manager meter identifier\n     */\n    pmMeterId: number | null | undefined;\n\n    /**\n     * The Portfolio Manager meter name\n     */\n    pmMeterName: string | null | undefined;\n\n    /**\n     * The Portfolio Manager commodity\n     */\n    pmCommodityCode: string | null | undefined;\n\n    /**\n     * The Portfolio Manager unit of measure\n     */\n    pmUnitCode: string | null | undefined;\n\n    meter: MeterChild | null | undefined;\n\n    unit: UnitChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PlaceChild } from './placeChild';\nimport { PlaceSizeChild } from './placeSizeChild';\n\n\nexport class EnergyStarPmProperty {\n    /**\n     * The Portfolio Manager property identifier null when not linked to a portfolio manager property\n     */\n    pmPropertyId: number | null | undefined;\n\n    /**\n     * The Portfolio Manager property name null when not linked to a portfolio manager property\n     */\n    pmPropertyName: string | null | undefined;\n\n    /**\n     * The Portfolio Manager property use type null when not linked to a portfolio manager property\n     */\n    pmPropertyUseType: string | null | undefined;\n\n    /**\n     * The Portfolio Manager floor area null when not linked to portfolio manager property\n     */\n    pmFloorArea: number | null | undefined;\n\n    /**\n     * The Portfolio Manager floor area units null when not linked to a portfolio manager property\n     */\n    pmFloorAreaUnits: string | null | undefined;\n\n    place: PlaceChild | null | undefined;\n\n    placeSize: PlaceSizeChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class EnergyStarRatingChild {\n    /**\n     * The date the score was received\n     */\n    ratingDate: Date | null | undefined;\n\n    /**\n     * The year and month for the ENERGY STAR score\n     */\n    calendarPeriod: number | null | undefined;\n\n    /**\n     * The ENERGY STAR score\n     */\n    rating: number | null | undefined;\n\n    /**\n     * The weather-normalized property energy use intensity (kBtu/ft²)\n     */\n    siteEnergyUseIntensity: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class EnergyStarSettings {\n    /**\n     * Indicates to always configure ENERGY STAR on a per commodity basis\n     */\n    submitByCommodityOnly: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class EnergyStarSettingsRequest {\n    /**\n     * The user name of the Portfolio Manager account to link. Not required if account already registered. <span class='property-internal'>Must be between 0 and 128 characters</span>\n     */\n    pmUserName: string | null | undefined;\n\n    /**\n     * The earliest period to submit <span class='property-internal'>Valid billing period between 190001 and 300001</span> <span class='property-internal'>Required</span>\n     */\n    earliestSubmissionPeriod: number | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class EnergyStarSettingsResponse {\n    /**\n     * Full name of Portfolio Account Manager\n     */\n    pmAccountManagerFullName: string | null | undefined;\n\n    /**\n     * User name of Portfolio Account Manager\n     */\n    pmAccountManagerUserName: string | null | undefined;\n\n    /**\n     * The earliest period to submit\n     */\n    earliestSubmissionPeriod: number | null | undefined;\n\n    /**\n     * Number of Portfolio Manager properties that are not linked to any buildings in EnergyCAP\n     */\n    unlinkedPropertyCount: number | null | undefined;\n\n    /**\n     * Number of Portfolio Manager properties that are linked to a building in EnergyCAP\n     */\n    linkedPropertyCount: number | null | undefined;\n\n    /**\n     * True if this client is configured for ENERGY STAR and Portfolio manager is available. False indicates an issue. EnergyStarConfigurationErrorMessage will contain details\n     */\n    isEnergyStarAvailable: boolean | null | undefined;\n\n    /**\n     * If IsEnergystarAvailable is false, this reports the error\n     */\n    energyStarConfigurationErrorMessage: string | null | undefined;\n\n    /**\n     * True if running offline mode or if ENERGY STAR has been disabled for this client, false otherwise\n     */\n    isEnergyStarDisabled: boolean | null | undefined;\n\n    /**\n     * True if ENERGY STAR has been configured\n     */\n    isEnergyStarConfigured: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class EnergyStarSubmissionPlaceChild {\n    /**\n     * The place identifier <span class='property-internal'>Required</span>\n     */\n    placeId: number | null ;\n\n    /**\n     * The list of submission periods to include in the submission <span class='property-internal'>Required</span> <span class='property-internal'>Cannot be Empty</span>\n     */\n    submissionPeriods: Array<number> | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { EnergyStarSubmissionPlaceChild } from './energyStarSubmissionPlaceChild';\n\n\n/**\n * NOTE: this class also serves as a representation of EnergyStarTask.settings\n */\nexport class EnergyStarSubmissionRequest {\n    /**\n     * List of places/submission periods to include in ENERGY STAR submission <span class='property-internal'>Required</span> <span class='property-internal'>Cannot be Empty</span>\n     */\n    places: Array<EnergyStarSubmissionPlaceChild> | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { NamedPeriod } from './namedPeriod';\nimport { PlaceChild } from './placeChild';\n\n\nexport class EnergyStarTaskPlaceChild {\n    building: PlaceChild | null | undefined;\n\n    /**\n     * The list of submission or metrics periods for the task\n     */\n    taskPeriods: Array<NamedPeriod> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { EnergyStarTaskPlaceChild } from './energyStarTaskPlaceChild';\nimport { SubmissionTypeResponse } from './submissionTypeResponse';\nimport { UserChild } from './userChild';\n\n\nexport class EnergyStarTaskResponse {\n    /**\n     * The task identifier\n     */\n    energyStarTaskId: number | null | undefined;\n\n    /**\n     * The task type\n     */\n    taskType: string | null | undefined;\n\n    /**\n     * The date the submission was initiated\n     */\n    beginDate: Date | null | undefined;\n\n    user: UserChild | null | undefined;\n\n    /**\n     * The number of buildings in the submission\n     */\n    numberOfPlaces: number | null | undefined;\n\n    /**\n     * Status for the submission portion of the task\n     */\n    submissionTaskStatus: string | null | undefined;\n\n    /**\n     * Status for the metrics retrieval portion of the task\n     */\n    metricsRetrievalTaskStatus: string | null | undefined;\n\n    /**\n     * Filename of the log containing errors encountered during submission Will be null if this task is only for metrics retrieval or if there were no errors during submission\n     */\n    submissionLogFileName: string | null | undefined;\n\n    /**\n     * Filename of the log containing errors or alerts encountered during metrics retrieval\n     */\n    metricsRetrievalLogFileName: string | null | undefined;\n\n    submissionType: SubmissionTypeResponse | null | undefined;\n\n    /**\n     * The list of buildings/submission periods in the submission\n     */\n    places: Array<EnergyStarTaskPlaceChild> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { HighPrecisionValue } from './highPrecisionValue';\n\n\nexport class EntityScheduleSummary {\n    /**\n     * \n     */\n    entityId: number | null | undefined;\n\n    inSchedule: HighPrecisionValue | null | undefined;\n\n    outSchedule: HighPrecisionValue | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class Environment {\n    /**\n     * \n     */\n    buildDate: Date | null | undefined;\n\n    /**\n     * \n     */\n    version: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\n/**\n * \n */\nexport class EsaChannelChild {\n    /**\n     * The identifier for the channel\n     */\n    channelId: number | null | undefined;\n\n    /**\n     * The channel interval\n     */\n    interval: number | null | undefined;\n\n    /**\n     * The channel name\n     */\n    channelInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { ObservationRule } from './observationRule';\nimport { ObservationTypeChild } from './observationTypeChild';\n\n\nexport class EsaChannelChildWithObservationType {\n    /**\n     * \n     */\n    esaChannelId: number | null | undefined;\n\n    /**\n     * \n     */\n    interval: number | null | undefined;\n\n    /**\n     * \n     */\n    esaChannelInfo: string | null | undefined;\n\n    type: ObservationTypeChild | null | undefined;\n\n    rule: ObservationRule | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { EsaChannelVersionCreate } from './esaChannelVersionCreate';\n\n\nexport class EsaChannelCreate {\n    /**\n     * The DatapointId identifier <span class='property-internal'>Required</span>\n     */\n    dataPointId: number | null ;\n\n    esaChannelVersion: EsaChannelVersionCreate | null | undefined;\n\n    /**\n     * The channel type identifier <span class='property-internal'>Required</span>\n     */\n    observationTypeId: number | null ;\n\n    /**\n     * The channel interval identifier <span class='property-internal'>One of '5', '10', '15', '30', '60', '1440', '10080', '43200'</span> <span class='property-internal'>Case sensitive</span> <span class='property-internal'>Required when IsCalculated is set to False, case sensitive.</span> <span class='property-internal'>Must be null when IsCalculated  is  set to True, case sensitive</span>\n     */\n    intervalMinutes: number | null | undefined;\n\n    /**\n     * The name of the ESA channel <span class='property-internal'>Max length of 50</span> <span class='property-internal'>Required</span>\n     */\n    channelInfo: string | null ;\n\n    /**\n     * The channel summarization method identifier <span class='property-internal'>Required</span>\n     */\n    summarizationMethodId: number | null ;\n\n    /**\n     * The channel import identifier <span class='property-internal'>Max length of 255</span>\n     */\n    channelImportId: string | null | undefined;\n\n    /**\n     * If the channel is primary value\n     */\n    isPrimaryValue: boolean | null | undefined;\n\n    /**\n     * If the channel is demand value\n     */\n    isPrimaryDemand: boolean | null | undefined;\n\n    /**\n     * The channel description <span class='property-internal'>Max length of 255</span>\n     */\n    channelDescription: string | null | undefined;\n\n    /**\n     * Indicates whether or not this is a calculated channel with a formula. When IsCalculated is true, the formula will need to be provided in channel version. Conversions from Non-Calculated Channel to Calculated Channel: If the channel has no readings, If the channel has only one version, If the channel is not in other formulas Conversions from Calculated Channel to Non-Calculated Channel: If the channel has no readings\n     */\n    isCalculated: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { EsaChannelVersionEdit } from './esaChannelVersionEdit';\n\n\nexport class EsaChannelEdit {\n    /**\n     * The channel type identifier <span class='property-internal'>Required</span>\n     */\n    observationTypeId: number | null ;\n\n    /**\n     * The channel interval identifier <span class='property-internal'>One of '5', '10', '15', '30', '60', '1440', '10080', '43200'</span> <span class='property-internal'>Case sensitive</span> <span class='property-internal'>Required when IsCalculated is set to False, case sensitive.</span> <span class='property-internal'>Must be null when IsCalculated  is  set to True, case sensitive</span>\n     */\n    intervalMinutes: number | null | undefined;\n\n    /**\n     * The name of the ESA channel <span class='property-internal'>Max length of 50</span> <span class='property-internal'>Required</span>\n     */\n    channelInfo: string | null ;\n\n    /**\n     * The channel summarization method identifier <span class='property-internal'>Required</span>\n     */\n    summarizationMethodId: number | null ;\n\n    /**\n     * The channel import identifier <span class='property-internal'>Max length of 255</span> <span class='property-internal'>Required (defined)</span>\n     */\n    channelImportId: string | null | undefined;\n\n    /**\n     * If the channel is primary value <span class='property-internal'>Required (defined)</span>\n     */\n    isPrimaryValue: boolean | null | undefined;\n\n    /**\n     * If the channel is demand value <span class='property-internal'>Required (defined)</span>\n     */\n    isPrimaryDemand: boolean | null | undefined;\n\n    /**\n     * The channel description <span class='property-internal'>Max length of 255</span> <span class='property-internal'>Required (defined)</span>\n     */\n    channelDescription: string | null | undefined;\n\n    /**\n     * Indicates whether or not this is a calculated channel with a formula. When IsCalculated is true, the formula will need to be provided in channel version. Conversions from Non-Calculated Channel to Calculated Channel: If the channel has no readings, If the channel has only one version, If the channel is not in other formulas Conversions from Calculated Channel to Non-Calculated Channel: If the channel has no readings <span class='property-internal'>Required (defined)</span>\n     */\n    isCalculated: boolean | null | undefined;\n\n    esaChannelVersion: EsaChannelVersionEdit | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { DataPointChildWithParentAndImportId } from './dataPointChildWithParentAndImportId';\nimport { EsaChannelVersionResponse } from './esaChannelVersionResponse';\nimport { MeterChildIncludePlace } from './meterChildIncludePlace';\nimport { ObservationTypeChild } from './observationTypeChild';\nimport { SummarizationMethod } from './summarizationMethod';\nimport { ValueWithUnit } from './valueWithUnit';\n\n\nexport class EsaChannelResponse {\n    observationType: ObservationTypeChild | null | undefined;\n\n    /**\n     * Description of the channel\n     */\n    channelDescription: string | null | undefined;\n\n    /**\n     * The import identifier for the channel.\n     */\n    channelImportId: string | null | undefined;\n\n    /**\n     * Indicates if the channel has readings\n     */\n    hasReadings: boolean | null | undefined;\n\n    /**\n     * DateTimeOffset of the earliest Reading for the Channel. For Calculated Channels, this is the first Summarized Reading. For all other Channels, this is the first Processed Reading. The DateTimeOffset will always be a valid time in the Meter's Time Zone. If the offset is removed, it will be the local date and time, in the Meter's Time Zone.\n     */\n    firstReadingDate: Date | null | undefined;\n\n    /**\n     * DateTimeOffset of the most recent Reading for the Channel. For Calculated Channels, this is the most recent Summarized Reading. For all other Channels, this is the most recent Processed Reading. The DateTimeOffset will always be a valid time in the Meter's Time Zone. If the offset is removed, it will be the local date and time, in the Meter's Time Zone.\n     */\n    lastReadingDate: Date | null | undefined;\n\n    lastReadingValue: ValueWithUnit | null | undefined;\n\n    /**\n     * Indicates if the channel is the primary value channel for the data point\n     */\n    isPrimaryValue: boolean | null | undefined;\n\n    /**\n     * Indicates if the channel is the primary demand channel for the data point\n     */\n    isPrimaryDemand: boolean | null | undefined;\n\n    /**\n     * Indicates if the channel is calculated\n     */\n    isCalculated: boolean | null | undefined;\n\n    /**\n     * Indicates if the channel can be converted from calculated to non-calculated or vice-versa From Non-Calculated to Calculated: If the channel has no readings, If the channel has only one version, If the channel is not in other formulas From Calculated to Non-Calculated: If the channel has no readings\n     */\n    isCalculatedConvertible: boolean | null | undefined;\n\n    summarizationMethod: SummarizationMethod | null | undefined;\n\n    /**\n     * List of channel versions Versions include channel settings that may change over time\n     */\n    channelVersions: Array<EsaChannelVersionResponse> | null | undefined;\n\n    dataPoint: DataPointChildWithParentAndImportId | null | undefined;\n\n    meter: MeterChildIncludePlace | null | undefined;\n\n    /**\n     * The identifier for the channel\n     */\n    channelId: number | null | undefined;\n\n    /**\n     * The channel interval\n     */\n    interval: number | null | undefined;\n\n    /**\n     * The channel name\n     */\n    channelInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class EsaChannelVersionCreate {\n    /**\n     * Indicates the channel observation rule Demand channels cannot have the odometer observation rule <span class='property-internal'>Required</span> <span class='property-internal'>Must be a valid value for ObservationRuleEnum: Odometer = 1, Trip = 2</span>\n     */\n    observationRuleId: EsaChannelVersionCreate.ObservationRuleIdEnum;\n\n    /**\n     * The channel multiplier <span class='property-internal'>Must be between -9999999999999 and 9999999999999</span> <span class='property-internal'>Required</span> <span class='property-internal'>Max scale of 15, max precision of 30</span>\n     */\n    multiplier: number | null ;\n\n    /**\n     * The channel offset  Exclusive to the Trip observation rule <span class='property-internal'>Must be between -9999999999999 and 9999999999999</span> <span class='property-internal'>Max scale of 15, max precision of 30</span>\n     */\n    offset: number | null | undefined;\n\n    /**\n     * The channel unit identifier. It cannot be a Money unit type. <span class='property-internal'>Required</span>\n     */\n    unitId: number | null ;\n\n    /**\n     * Indicates if the final value is always positive\n     */\n    isValuePositive: boolean | null | undefined;\n\n    /**\n     * The channel Odometer Rollover Value. Exclusive to the Odometer observation rule If not provided, the default 999999999999999 is used <span class='property-internal'>Must be between 0 and 999999999999999</span> <span class='property-internal'>Max scale of 15, max precision of 30</span> <span class='property-internal'>NULL Valid</span> <span class='property-internal'>Must be null when ObservationRuleId  is  set to Trip, case sensitive</span>\n     */\n    rolloverValue: number | null | undefined;\n\n    /**\n     * The channel Odometer Rollover Allowance. Exclusive to the Odometer observation rule If not provided, the default 0.1 is used <span class='property-internal'>Must be between 0 and 1</span> <span class='property-internal'>Max scale of 15, max precision of 30</span> <span class='property-internal'>NULL Valid</span> <span class='property-internal'>Must be null when ObservationRuleId  is  set to Trip, case sensitive</span>\n     */\n    rollbackAllowance: number | null | undefined;\n\n    /**\n     * The channel Minimum Computed Reading <span class='property-internal'>Must be between -999999999999999 and 999999999999999</span> <span class='property-internal'>Max scale of 15, max precision of 30</span> <span class='property-internal'>NULL Valid</span>\n     */\n    minimumReading: number | null | undefined;\n\n    /**\n     * The channel Maximum Computed Reading <span class='property-internal'>Must be between -999999999999999 and 999999999999999</span> <span class='property-internal'>Max scale of 15, max precision of 30</span> <span class='property-internal'>NULL Valid</span>\n     */\n    maximumReading: number | null | undefined;\n\n    /**\n     * The formula that should be used to calculate the channel's values.  Should only be provided when channel's IsCalculated property equals true.\n     */\n    formula: string | null | undefined;\n\n}\nexport namespace EsaChannelVersionCreate {\n    export enum ObservationRuleIdEnum {\n        NUMBER_1 = <any> 1,\n        NUMBER_2 = <any> 2\n    }\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class EsaChannelVersionCreateWithBeginDate {\n    /**\n     * Date and time that this channel version is valid from. The valid period is exclusive of the beginDate.  The time zone of this date will match the data point's time zone. Therefore, if any time zone information is provided, it will be ignored.\n     */\n    beginDate: Date | null | undefined;\n\n    /**\n     * Indicates the channel observation rule Demand channels cannot have the odometer observation rule <span class='property-internal'>Required</span> <span class='property-internal'>Must be a valid value for ObservationRuleEnum: Odometer = 1, Trip = 2</span>\n     */\n    observationRuleId: EsaChannelVersionCreateWithBeginDate.ObservationRuleIdEnum;\n\n    /**\n     * The channel multiplier <span class='property-internal'>Must be between -9999999999999 and 9999999999999</span> <span class='property-internal'>Required</span> <span class='property-internal'>Max scale of 15, max precision of 30</span>\n     */\n    multiplier: number | null ;\n\n    /**\n     * The channel offset  Exclusive to the Trip observation rule <span class='property-internal'>Must be between -9999999999999 and 9999999999999</span> <span class='property-internal'>Max scale of 15, max precision of 30</span>\n     */\n    offset: number | null | undefined;\n\n    /**\n     * The channel unit identifier. It cannot be a Money unit type. <span class='property-internal'>Required</span>\n     */\n    unitId: number | null ;\n\n    /**\n     * Indicates if the final value is always positive\n     */\n    isValuePositive: boolean | null | undefined;\n\n    /**\n     * The channel Odometer Rollover Value. Exclusive to the Odometer observation rule If not provided, the default 999999999999999 is used <span class='property-internal'>Must be between 0 and 999999999999999</span> <span class='property-internal'>Max scale of 15, max precision of 30</span> <span class='property-internal'>NULL Valid</span> <span class='property-internal'>Must be null when ObservationRuleId  is  set to Trip, case sensitive</span>\n     */\n    rolloverValue: number | null | undefined;\n\n    /**\n     * The channel Odometer Rollover Allowance. Exclusive to the Odometer observation rule If not provided, the default 0.1 is used <span class='property-internal'>Must be between 0 and 1</span> <span class='property-internal'>Max scale of 15, max precision of 30</span> <span class='property-internal'>NULL Valid</span> <span class='property-internal'>Must be null when ObservationRuleId  is  set to Trip, case sensitive</span>\n     */\n    rollbackAllowance: number | null | undefined;\n\n    /**\n     * The channel Minimum Computed Reading <span class='property-internal'>Must be between -999999999999999 and 999999999999999</span> <span class='property-internal'>Max scale of 15, max precision of 30</span> <span class='property-internal'>NULL Valid</span>\n     */\n    minimumReading: number | null | undefined;\n\n    /**\n     * The channel Maximum Computed Reading <span class='property-internal'>Must be between -999999999999999 and 999999999999999</span> <span class='property-internal'>Max scale of 15, max precision of 30</span> <span class='property-internal'>NULL Valid</span>\n     */\n    maximumReading: number | null | undefined;\n\n    /**\n     * The formula that should be used to calculate the channel's values.  Should only be provided when channel's IsCalculated property equals true.\n     */\n    formula: string | null | undefined;\n\n}\nexport namespace EsaChannelVersionCreateWithBeginDate {\n    export enum ObservationRuleIdEnum {\n        NUMBER_1 = <any> 1,\n        NUMBER_2 = <any> 2\n    }\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class EsaChannelVersionEdit {\n    /**\n     * Date and time that this channel version is valid from. The valid period is exclusive of the beginDate.  The time zone of this date will match the data point's time zone. Therefore, if any time zone information is provided, it will be ignored.\n     */\n    beginDate: Date | null | undefined;\n\n    /**\n     * Indicates the channel observation rule Demand channels cannot have the odometer observation rule <span class='property-internal'>Required</span> <span class='property-internal'>Must be a valid value for ObservationRuleEnum: Odometer = 1, Trip = 2</span>\n     */\n    observationRuleId: EsaChannelVersionEdit.ObservationRuleIdEnum;\n\n    /**\n     * The channel multiplier <span class='property-internal'>Must be between -9999999999999 and 9999999999999</span> <span class='property-internal'>Required</span> <span class='property-internal'>Max scale of 15, max precision of 30</span>\n     */\n    multiplier: number | null ;\n\n    /**\n     * The channel offset  Exclusive to the Trip observation rule <span class='property-internal'>Must be between -9999999999999 and 9999999999999</span> <span class='property-internal'>Max scale of 15, max precision of 30</span>\n     */\n    offset: number | null | undefined;\n\n    /**\n     * The channel unit identifier. It cannot be a Money unit type. <span class='property-internal'>Required</span>\n     */\n    unitId: number | null ;\n\n    /**\n     * Indicates if the final value is always positive\n     */\n    isValuePositive: boolean | null | undefined;\n\n    /**\n     * The channel Odometer Rollover Value. Exclusive to the Odometer observation rule If not provided, the default 999999999999999 is used <span class='property-internal'>Must be between 0 and 999999999999999</span> <span class='property-internal'>Max scale of 15, max precision of 30</span> <span class='property-internal'>NULL Valid</span> <span class='property-internal'>Must be null when ObservationRuleId  is  set to Trip, case sensitive</span>\n     */\n    rolloverValue: number | null | undefined;\n\n    /**\n     * The channel Odometer Rollover Allowance. Exclusive to the Odometer observation rule If not provided, the default 0.1 is used <span class='property-internal'>Must be between 0 and 1</span> <span class='property-internal'>Max scale of 15, max precision of 30</span> <span class='property-internal'>NULL Valid</span> <span class='property-internal'>Must be null when ObservationRuleId  is  set to Trip, case sensitive</span>\n     */\n    rollbackAllowance: number | null | undefined;\n\n    /**\n     * The channel Minimum Computed Reading <span class='property-internal'>Must be between -999999999999999 and 999999999999999</span> <span class='property-internal'>Max scale of 15, max precision of 30</span> <span class='property-internal'>NULL Valid</span>\n     */\n    minimumReading: number | null | undefined;\n\n    /**\n     * The channel Maximum Computed Reading <span class='property-internal'>Must be between -999999999999999 and 999999999999999</span> <span class='property-internal'>Max scale of 15, max precision of 30</span> <span class='property-internal'>NULL Valid</span>\n     */\n    maximumReading: number | null | undefined;\n\n    /**\n     * The formula that should be used to calculate the channel's values.  Should only be provided when channel's IsCalculated property equals true.\n     */\n    formula: string | null | undefined;\n\n}\nexport namespace EsaChannelVersionEdit {\n    export enum ObservationRuleIdEnum {\n        NUMBER_1 = <any> 1,\n        NUMBER_2 = <any> 2\n    }\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { ObservationRule } from './observationRule';\nimport { UnitChild } from './unitChild';\n\n\nexport class EsaChannelVersionResponse {\n    /**\n     * The channel version identifier\n     */\n    channelVersionId: number | null | undefined;\n\n    /**\n     * The channel multiplier\n     */\n    multiplier: number | null | undefined;\n\n    /**\n     * The channel offset\n     */\n    offset: number | null | undefined;\n\n    unit: UnitChild | null | undefined;\n\n    observationRule: ObservationRule | null | undefined;\n\n    /**\n     * The channel's minimum reading\n     */\n    minimumReading: number | null | undefined;\n\n    /**\n     * The channel's maximum reading\n     */\n    maximumReading: number | null | undefined;\n\n    /**\n     * Date and time that this channel version is valid from. The valid period is exclusive of the beginDate.\n     */\n    beginDate: Date | null | undefined;\n\n    /**\n     * Date and time that this channel version is valid until. The valid period is inclusive of the endDate.\n     */\n    endDate: Date | null | undefined;\n\n    /**\n     * Indicates if the channel final value is always positive\n     */\n    isValuePositive: boolean | null | undefined;\n\n    /**\n     * The channel's rollover value\n     */\n    rolloverValue: number | null | undefined;\n\n    /**\n     * The channel's roll back allowance\n     */\n    rollbackAllowance: number | null | undefined;\n\n    /**\n     * The formula that should be used in calculated channels.\n     */\n    formula: string | null | undefined;\n\n    /**\n     * Formula, but with the input Channels and Meters referenced by ChannelInfo (name) instead of by ID.\n     */\n    resolvedFormula: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { EsaReadingDelete } from './esaReadingDelete';\n\n\nexport class EsaDeleteReadingResponse {\n    /**\n     * Data representing the failed reading deletion\n     */\n    failures: Array<EsaReadingDelete> | null | undefined;\n\n    /**\n     * The number of readings deleted\n     */\n    deleted: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { EsaReadingSummarizedDelete } from './esaReadingSummarizedDelete';\n\n\nexport class EsaDeleteReadingSummarizedResponse {\n    /**\n     * Data representing the failed reading deletion\n     */\n    failures: Array<EsaReadingSummarizedDelete> | null | undefined;\n\n    /**\n     * The number of readings deleted\n     */\n    deleted: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AreaNormalizedResponse } from './areaNormalizedResponse';\nimport { ScheduleWithEntitySummaries } from './scheduleWithEntitySummaries';\nimport { TemperatureResponse } from './temperatureResponse';\n\n\nexport class EsaIntervalDataOverlay {\n    areaNormalized: AreaNormalizedResponse | null | undefined;\n\n    schedule: ScheduleWithEntitySummaries | null | undefined;\n\n    coolingDegreeDays: TemperatureResponse | null | undefined;\n\n    heatingDegreeDays: TemperatureResponse | null | undefined;\n\n    dailyMeanTemperatures: TemperatureResponse | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { DateRange } from './dateRange';\nimport { EsaIntervalDataOverlay } from './esaIntervalDataOverlay';\nimport { TimeSeriesEntity } from './timeSeriesEntity';\nimport { TimeSeriesEntitySummary } from './timeSeriesEntitySummary';\nimport { TimeSeriesValue } from './timeSeriesValue';\n\n\n/**\n * This DTO is used for the EsaIntervalData Widget\n */\nexport class EsaIntervalDataResponse {\n    dateRange: DateRange | null | undefined;\n\n    /**\n     * Data grouping interval in minutes\n     */\n    groupIntervalMinutes: number | null | undefined;\n\n    overlays: EsaIntervalDataOverlay | null | undefined;\n\n    /**\n     * A collection of summaries (min, max, sum, average) for each Entity in the time series response.\n     */\n    entitySummaries: Array<TimeSeriesEntitySummary> | null | undefined;\n\n    /**\n     * \n     */\n    entities: Array<TimeSeriesEntity> | null | undefined;\n\n    /**\n     * \n     */\n    values: Array<TimeSeriesValue> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AddressChild } from './addressChild';\n\n\nexport class EsaPlaceCreate {\n    /**\n     * The place code. <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 32 characters</span> <span class='property-internal'>Not ROOT</span>\n     */\n    placeCode: string | null ;\n\n    /**\n     * The place info. <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 50 characters</span>\n     */\n    placeInfo: string | null ;\n\n    /**\n     * The identifier for the parent of the place. The parent is the place directly above the current place. <span class='property-internal'>Topmost (Space)</span> <span class='property-internal'>Required</span>\n     */\n    parentPlaceId: number | null ;\n\n    /**\n     * The identifier for the place type. <span class='property-internal'>Required</span>\n     */\n    placeTypeId: number | null ;\n\n    /**\n     * The identifier for the place's primary use. If this is a site and PrimaryUseId is null this will be set to Unknown (PrimaryUseId 55). Not valid for Spaces.\n     */\n    primaryUseId: number | null | undefined;\n\n    /**\n     * The date and time the place was built. Not valid for Spaces.\n     */\n    buildDate: Date | null | undefined;\n\n    address: AddressChild | null | undefined;\n\n    /**\n     * The code for the weather station the place is assigned to. Not valid for Spaces. <span class='property-internal'>Must be between 0 and 32 characters</span>\n     */\n    weatherStationCode: string | null | undefined;\n\n    /**\n     * A description of the place. <span class='property-internal'>Must be between 0 and 4000 characters</span>\n     */\n    placeDescription: string | null | undefined;\n\n    /**\n     * The name of the place's image. Not valid for Spaces.\n     */\n    imageFilename: string | null | undefined;\n\n    /**\n     * The time zone identifier. Not valid for Spaces.\n     */\n    timeZoneId: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class EsaPlaceDataRollupRequest {\n    /**\n     * The IDs of the Places to be updated. Each ID should appear no more than once. <span class='property-internal'>Cannot be Empty</span> <span class='property-internal'>Required (defined)</span>\n     */\n    placeIds: Array<number> | null | undefined;\n\n    /**\n     * A flag indicating whether or not this Place's summary totals should \\\"roll up\\\". - i.e. whether they should contribute to the Place's parent's (and other ancestors') <span class='property-internal'>Required (defined)</span>\n     */\n    dataRollup: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AddressChild } from './addressChild';\n\n\nexport class EsaPlaceEdit {\n    /**\n     * The place code. <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 32 characters</span> <span class='property-internal'>Not ROOT</span>\n     */\n    placeCode: string | null ;\n\n    /**\n     * The place info. <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 50 characters</span>\n     */\n    placeInfo: string | null ;\n\n    /**\n     * The identifier for the parent of the place. The parent is the place directly above the current place. <span class='property-internal'>Topmost (Space)</span> <span class='property-internal'>Required</span>\n     */\n    parentPlaceId: number | null ;\n\n    /**\n     * The identifier for the place type. <span class='property-internal'>Required</span>\n     */\n    placeTypeId: number | null ;\n\n    /**\n     * The identifier for the place's primary use. If this is a site and PrimaryUseId is null this will be set to Unknown (PrimaryUseId 55). Not valid for Spaces. <span class='property-internal'>Required (defined)</span>\n     */\n    primaryUseId: number | null | undefined;\n\n    /**\n     * The date and time the place was built. Not valid for Spaces. <span class='property-internal'>Required (defined)</span>\n     */\n    buildDate: Date | null | undefined;\n\n    address: AddressChild | null | undefined;\n\n    /**\n     * The code for the weather station the place is assigned to. Not valid for Spaces. <span class='property-internal'>Must be between 0 and 32 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    weatherStationCode: string | null | undefined;\n\n    /**\n     * A description of the place. <span class='property-internal'>Must be between 0 and 4000 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    placeDescription: string | null | undefined;\n\n    /**\n     * The name of the place's image. Not valid for Spaces. <span class='property-internal'>Required (defined)</span>\n     */\n    imageFilename: string | null | undefined;\n\n    /**\n     * The time zone identifier. Not valid for Spaces. <span class='property-internal'>Required (defined)</span>\n     */\n    timeZoneId: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AddressChild } from './addressChild';\nimport { ContactChild } from './contactChild';\nimport { DataPointChild } from './dataPointChild';\nimport { EnergyStarRatingChild } from './energyStarRatingChild';\nimport { LatestBenchmarkValue } from './latestBenchmarkValue';\nimport { MeterChild } from './meterChild';\nimport { PlaceChild } from './placeChild';\nimport { PlaceSizeChild } from './placeSizeChild';\nimport { PlaceTypeResponse } from './placeTypeResponse';\nimport { PrimaryUseChild } from './primaryUseChild';\nimport { ScheduleChild } from './scheduleChild';\nimport { TimeZoneChild } from './timeZoneChild';\nimport { UserChild } from './userChild';\nimport { WatticsSite } from './watticsSite';\nimport { WeatherStationChild } from './weatherStationChild';\n\n\nexport class EsaPlaceResponse {\n    parent: PlaceChild | null | undefined;\n\n    placeType: PlaceTypeResponse | null | undefined;\n\n    /**\n     * The date and time the place was created\n     */\n    createdDate: Date | null | undefined;\n\n    createdBy: UserChild | null | undefined;\n\n    /**\n     * The date and time of the most recent modification to the place\n     */\n    modifiedDate: Date | null | undefined;\n\n    modifiedBy: UserChild | null | undefined;\n\n    address: AddressChild | null | undefined;\n\n    /**\n     * The date and time the place was built\n     */\n    buildDate: Date | null | undefined;\n\n    primaryUse: PrimaryUseChild | null | undefined;\n\n    weatherStation: WeatherStationChild | null | undefined;\n\n    size: PlaceSizeChild | null | undefined;\n\n    benchmark1: LatestBenchmarkValue | null | undefined;\n\n    benchmark2: LatestBenchmarkValue | null | undefined;\n\n    benchmark3: LatestBenchmarkValue | null | undefined;\n\n    /**\n     * Tells whether energy star is enabled for the given place\n     */\n    energyStarEnabled: boolean | null | undefined;\n\n    energyStarRating: EnergyStarRatingChild | null | undefined;\n\n    /**\n     * An array of child places. A child place is one directly beneath the current place\n     */\n    places: Array<PlaceChild> | null | undefined;\n\n    /**\n     * An array of child meters. A child meter is one directly beneath the current place\n     */\n    meters: Array<MeterChild> | null | undefined;\n\n    /**\n     * An array of child data points. A child data point is one directly beneath the current place\n     */\n    dataPoints: Array<DataPointChild> | null | undefined;\n\n    contact: ContactChild | null | undefined;\n\n    /**\n     * A description of the place\n     */\n    placeDescription: string | null | undefined;\n\n    watticsSite: WatticsSite | null | undefined;\n\n    /**\n     * Tells whether the place area is calculated from its children (TODO: Use 'Area' instead of 'Size'? Would be inconsistent with Size property in DTO)\n     */\n    isSizeCalculated: boolean | null | undefined;\n\n    /**\n     * Tells whether or not the place's data is rolled up to its parents. Currently only supported by ESA.\n     */\n    isDataRolledUp: boolean | null | undefined;\n\n    sizeInReportingUnit: PlaceSizeChild | null | undefined;\n\n    /**\n     * The name of the place's image. Currently only supported by ESA.\n     */\n    imageFilename: string | null | undefined;\n\n    timeZone: TimeZoneChild | null | undefined;\n\n    /**\n     * The place's schedules\n     */\n    schedules: Array<ScheduleChild> | null | undefined;\n\n    /**\n     * The place identifier\n     */\n    placeId: number | null | undefined;\n\n    /**\n     * The place code\n     */\n    placeCode: string | null | undefined;\n\n    /**\n     * The place info\n     */\n    placeInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class EsaPlaceSizeCreate {\n    /**\n     * The begin date for the place size <span class='property-internal'>Required</span>\n     */\n    beginDate: Date | null ;\n\n    /**\n     * The place size value <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 2147483647</span>\n     */\n    value: number | null ;\n\n    /**\n     * <p>The place size's unit code</p> <p>Options are: SQFEET for Square Feet, SQMETER for Square Meters, HECTARE, SQKILOMETER for Square Kilometers,             SQMILE for Square Miles, SQYARD for Square Yards, and ACRE.</p> <span class='property-internal'>One of 'SQFEET', 'SQMETER', 'HECTARE', 'SQKILOMETER', 'SQMILE', 'SQYARD', 'ACRE'</span> <span class='property-internal'>Case sensitive</span> <span class='property-internal'>Must be between 0 and 16 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    unitCode: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { EsaReadingValue } from './esaReadingValue';\n\n\n/**\n * ESA reading request\n */\nexport class EsaReadingCreate {\n    /**\n     *  Channel Identification       The channel that receives the reading is determined by the following rules:      Direct pointers to a channel     If the EsaChannelId is supplied, then import to that channel.     If the EsaChannelId is not supplied look at the EsaChannelImportId property, which indicates a specific channel. Inferred pointers to a channel     If the EsaChannelId and EsaChannelImportId are not supplied, look at the DataPointImportId property, which indicates a data point.If that data point has one channel, import to that channel.     If that data point has more than one channel, find the channel with the same observation type as the ObservationTypeCode property.If only one is found, import to that channel.     If more than one channel is found based on observation type, find the channel with the same output unit as the UnitCode property.If only one is found, import to that channel.     If more than one channel is found based on unit, find the channel with the same EsaChannelIntervalMinutes property. If only one is found, import to that channel. <span class='property-internal'>Topmost (EsaChannel)</span> <span class='property-internal'>At least one of EsaChannelId, EsaChannelImportId, DataPointImportId must not be null</span>\n     */\n    esaChannelId: number | null | undefined;\n\n    /**\n     * The import identifier for the channel on which to create the reading. See the EsaChannelId property for more information <span class='property-internal'>At least one of EsaChannelId, EsaChannelImportId, DataPointImportId must not be null</span>\n     */\n    esaChannelImportId: string | null | undefined;\n\n    /**\n     * The import identifier for the data point on which to create the reading. See the EsaChannelId property for more information <span class='property-internal'>At least one of EsaChannelId, EsaChannelImportId, DataPointImportId must not be null</span>\n     */\n    dataPointImportId: string | null | undefined;\n\n    /**\n     * The interval in minutes for the channel on which to create the reading. See the EsaChannelId property for more information\n     */\n    esaChannelIntervalMinutes: number | null | undefined;\n\n    /**\n     * The observationType code of the reading. See the EsaChannelId property for more information\n     */\n    observationTypeCode: string | null | undefined;\n\n    /**\n     * The unit code of the reading. See the EsaChannelId property for more information\n     */\n    unitCode: string | null | undefined;\n\n    /**\n     * List of readings <span class='property-internal'>Required</span>\n     */\n    readings: Array<EsaReadingValue> | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { EsaReadingValueError } from './esaReadingValueError';\n\n\n/**\n * Failed reading create dtos\n */\nexport class EsaReadingCreateError {\n    /**\n     * The ESA channel id\n     */\n    esaChannelId: number | null | undefined;\n\n    /**\n     * The ESA channel import id\n     */\n    esaChannelImportId: string | null | undefined;\n\n    /**\n     * The data point import id\n     */\n    dataPointImportId: string | null | undefined;\n\n    /**\n     * The esa channel interval\n     */\n    esaChannelIntervalMinutes: number | null | undefined;\n\n    /**\n     * The observation type of the esa channel\n     */\n    observationTypeCode: string | null | undefined;\n\n    /**\n     * The unit code of the esa channel\n     */\n    unitCode: string | null | undefined;\n\n    /**\n     * List of readings\n     */\n    readings: Array<EsaReadingValueError> | null | undefined;\n\n    /**\n     * The error message\n     */\n    error: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { EsaReadingCreateError } from './esaReadingCreateError';\n\n\n/**\n * ESA reading create response\n */\nexport class EsaReadingCreateResponse {\n    /**\n     * The number of successfully imported readings\n     */\n    importedReadingsCount: number | null | undefined;\n\n    /**\n     * The number of failed readings\n     */\n    failedReadingsCount: number | null | undefined;\n\n    /**\n     * Data representing the failed readings\n     */\n    failedReadings: Array<EsaReadingCreateError> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class EsaReadingDelete {\n    /**\n     * The identifier for the ESA channel of the reading <span class='property-internal'>Required</span>\n     */\n    esaChannelId: number | null ;\n\n    /**\n     * The begin date and time of the set of readings to be deleted.  If provided, readings after (but not including) this date and time will be deleted. If provided, and equal to TimeEnd, delete the single reading at this date and time (if present). If not provided, readings since the start of time will be deleted. If TimeEnd is also not provided, ALL readings belonging to EsaChannelId will be deleted.  If UseDataPointTimeZone is false, this time is interpreted as an absolute timestamp. For example, \\\"2024-01-01 05:00:00 -04:00\\\".  If UseDataPointTimeZone is true, the following applies:  The time is presumed to be in the time zone of the data point. If an offset is provided, it will be ignored. For example, if \\\"2024-01-01 05:00:00 -04:00\\\" is provided but the time zone of the data point is \\\"GMT\\\" then this will get turned into \\\"2024-01-01 05:00:00 +00:00\\\" before being applied. If an ambiguous time is provided (for instance 01:30 when the clocks go backward for a DST change) then choose the earliest one in absolute time. If an invalid time is provided (for example 02:30 when the clocks go forward for a DST change) then shift forward by the amount of the DST change (in this example, +1hr will make it 03:30, in the DataPoint's time zone).\n     */\n    timeBegin: Date | null | undefined;\n\n    /**\n     * The end date and time of the set of readings to be deleted.  If provided, readings up to (and including) this date and time will be deleted. If provided, and equal to TimeBegin, delete the single reading at this date and time (if present). If not provided, readings until the end of time will be deleted. If TimeBegin is also not provided, ALL readings belonging to EsaChannelId will be deleted.  See TimeBegin for a discussion of how the value of UseDataPointTimeZone affects the interpretation of this value.\n     */\n    timeEnd: Date | null | undefined;\n\n    /**\n     * \n     */\n    useDataPointTimeZone: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { ColumnNumberOrOverrideValueNullableInt32 } from './columnNumberOrOverrideValueNullableInt32';\nimport { ColumnNumberOrOverrideValueString } from './columnNumberOrOverrideValueString';\nimport { EsaReadingImportProfileColumn } from './esaReadingImportProfileColumn';\nimport { Estimated } from './estimated';\n\n\nexport class EsaReadingImportProfile {\n    /**\n     * The time zone for the import profile\n     */\n    timeZoneId: number | null | undefined;\n\n    /**\n     * The string that represents how the file contents are delimited <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 1 and 2 characters</span>\n     */\n    delimiter: string | null ;\n\n    /**\n     * The string that represents how the decimal values are separated <span class='property-internal'>Must be between 1 and 2 characters</span> <span class='property-internal'>One of ',', '.'</span> <span class='property-internal'>Case sensitive</span>\n     */\n    decimalSeparator: string | null | undefined;\n\n    /**\n     * Number of header rows before the data begins (Skip Rows) <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 2147483647</span>\n     */\n    numberOfHeaderRows: number | null ;\n\n    dataPointImportId: ColumnNumberOrOverrideValueString | null | undefined;\n\n    channelImportId: ColumnNumberOrOverrideValueString | null | undefined;\n\n    /**\n     * The format for the Date and Time of the readings. An example is MM/dd/yyyy mm:hh:ss:zzz <span class='property-internal'>Only one of DateFormat, DateTimeFormat can be set</span> <span class='property-internal'>Only one of TimeFormat, DateTimeFormat can be set</span>\n     */\n    dateTimeFormat: string | null | undefined;\n\n    /**\n     * The number of the column that holds the Date and Time  Mandatory when Date Time Format column is provided <span class='property-internal'>Required when DateTimeFormat is set</span> <span class='property-internal'>Must be between 1 and 104</span>\n     */\n    dateTimeColumnNumber: number | null | undefined;\n\n    /**\n     * The format for the date of the readings. An example is MM/dd/yyyy <span class='property-internal'>Only one of DateFormat, DateTimeFormat can be set</span>\n     */\n    dateFormat: string | null | undefined;\n\n    /**\n     * The number of the column that holds the date  Mandatory when Date Format column is provided <span class='property-internal'>Required when DateFormat is set</span> <span class='property-internal'>Must be between 1 and 104</span>\n     */\n    dateColumnNumber: number | null | undefined;\n\n    /**\n     * The format for the time of the readings. An example is mm:hh:ss:zzz Mandatory when Date Format column is provided <span class='property-internal'>Required when DateFormat is set</span> <span class='property-internal'>Only one of TimeFormat, DateTimeFormat can be set</span>\n     */\n    timeFormat: string | null | undefined;\n\n    /**\n     * The number of the column that holds the time  Mandatory when Date Format column is provided <span class='property-internal'>Required when DateFormat is set</span> <span class='property-internal'>Must be between 1 and 104</span>\n     */\n    timeColumnNumber: number | null | undefined;\n\n    estimated: Estimated | null | undefined;\n\n    interval: ColumnNumberOrOverrideValueNullableInt32 | null | undefined;\n\n    /**\n     * Column number that holds a note to be stored with the reading <span class='property-internal'>Must be between 1 and 104</span>\n     */\n    readingNoteColumnNumber: number | null | undefined;\n\n    /**\n     * Column number that holds reading value to be imported onto the ChannelImportId <span class='property-internal'>Must be between 1 and 104</span> <span class='property-internal'>Required when ChannelImportId is set</span> <span class='property-internal'>Only one of ReadingValueColumnNumber, IntervalDataTypes can be set</span>\n     */\n    readingValueColumnNumber: number | null | undefined;\n\n    /**\n     * A list of columns from the import sheet with their observation type and unit <span class='property-internal'>Cannot be Empty</span> <span class='property-internal'>NULL Valid</span> <span class='property-internal'>Required when DataPointImportId is set</span> <span class='property-internal'>Only one of ReadingValueColumnNumber, IntervalDataTypes can be set</span>\n     */\n    intervalDataTypes: Array<EsaReadingImportProfileColumn> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class EsaReadingImportProfileColumn {\n    /**\n     * The number of the column <span class='property-internal'>Must be between 1 and 104</span>\n     */\n    columnNumber: number | null | undefined;\n\n    /**\n     * The observation type code of the reading <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 16 characters</span>\n     */\n    observationTypeCode: string | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { ColumnNumberOrOverrideValueNullableInt32 } from './columnNumberOrOverrideValueNullableInt32';\nimport { ColumnNumberOrOverrideValueString } from './columnNumberOrOverrideValueString';\nimport { EsaReadingImportProfileColumn } from './esaReadingImportProfileColumn';\nimport { Estimated } from './estimated';\n\n\nexport class EsaReadingImportProfileCreate {\n    /**\n     * Name of the import profile <span class='property-internal'>Max length of 50</span> <span class='property-internal'>Required</span>\n     */\n    profileInfo: string | null ;\n\n    /**\n     * Description of the import profile <span class='property-internal'>Max length of 255</span>\n     */\n    profileDescription: string | null | undefined;\n\n    /**\n     * The time zone for the import profile\n     */\n    timeZoneId: number | null | undefined;\n\n    /**\n     * The string that represents how the file contents are delimited <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 1 and 2 characters</span>\n     */\n    delimiter: string | null ;\n\n    /**\n     * The string that represents how the decimal values are separated <span class='property-internal'>Must be between 1 and 2 characters</span> <span class='property-internal'>One of ',', '.'</span> <span class='property-internal'>Case sensitive</span>\n     */\n    decimalSeparator: string | null | undefined;\n\n    /**\n     * Number of header rows before the data begins (Skip Rows) <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 2147483647</span>\n     */\n    numberOfHeaderRows: number | null ;\n\n    dataPointImportId: ColumnNumberOrOverrideValueString | null | undefined;\n\n    channelImportId: ColumnNumberOrOverrideValueString | null | undefined;\n\n    /**\n     * The format for the Date and Time of the readings. An example is MM/dd/yyyy mm:hh:ss:zzz <span class='property-internal'>Only one of DateFormat, DateTimeFormat can be set</span> <span class='property-internal'>Only one of TimeFormat, DateTimeFormat can be set</span>\n     */\n    dateTimeFormat: string | null | undefined;\n\n    /**\n     * The number of the column that holds the Date and Time  Mandatory when Date Time Format column is provided <span class='property-internal'>Required when DateTimeFormat is set</span> <span class='property-internal'>Must be between 1 and 104</span>\n     */\n    dateTimeColumnNumber: number | null | undefined;\n\n    /**\n     * The format for the date of the readings. An example is MM/dd/yyyy <span class='property-internal'>Only one of DateFormat, DateTimeFormat can be set</span>\n     */\n    dateFormat: string | null | undefined;\n\n    /**\n     * The number of the column that holds the date  Mandatory when Date Format column is provided <span class='property-internal'>Required when DateFormat is set</span> <span class='property-internal'>Must be between 1 and 104</span>\n     */\n    dateColumnNumber: number | null | undefined;\n\n    /**\n     * The format for the time of the readings. An example is mm:hh:ss:zzz Mandatory when Date Format column is provided <span class='property-internal'>Required when DateFormat is set</span> <span class='property-internal'>Only one of TimeFormat, DateTimeFormat can be set</span>\n     */\n    timeFormat: string | null | undefined;\n\n    /**\n     * The number of the column that holds the time  Mandatory when Date Format column is provided <span class='property-internal'>Required when DateFormat is set</span> <span class='property-internal'>Must be between 1 and 104</span>\n     */\n    timeColumnNumber: number | null | undefined;\n\n    estimated: Estimated | null | undefined;\n\n    interval: ColumnNumberOrOverrideValueNullableInt32 | null | undefined;\n\n    /**\n     * Column number that holds a note to be stored with the reading <span class='property-internal'>Must be between 1 and 104</span>\n     */\n    readingNoteColumnNumber: number | null | undefined;\n\n    /**\n     * Column number that holds reading value to be imported onto the ChannelImportId <span class='property-internal'>Must be between 1 and 104</span> <span class='property-internal'>Required when ChannelImportId is set</span> <span class='property-internal'>Only one of ReadingValueColumnNumber, IntervalDataTypes can be set</span>\n     */\n    readingValueColumnNumber: number | null | undefined;\n\n    /**\n     * A list of columns from the import sheet with their observation type and unit <span class='property-internal'>Cannot be Empty</span> <span class='property-internal'>NULL Valid</span> <span class='property-internal'>Required when DataPointImportId is set</span> <span class='property-internal'>Only one of ReadingValueColumnNumber, IntervalDataTypes can be set</span>\n     */\n    intervalDataTypes: Array<EsaReadingImportProfileColumn> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { ColumnNumberOrOverrideValueNullableInt32 } from './columnNumberOrOverrideValueNullableInt32';\nimport { ColumnNumberOrOverrideValueString } from './columnNumberOrOverrideValueString';\nimport { EsaReadingImportProfileColumn } from './esaReadingImportProfileColumn';\nimport { Estimated } from './estimated';\n\n\nexport class EsaReadingImportProfileEdit {\n    /**\n     * Name of the import profile <span class='property-internal'>Max length of 50</span> <span class='property-internal'>Required</span>\n     */\n    profileInfo: string | null ;\n\n    /**\n     * Description of the import profile <span class='property-internal'>Max length of 255</span> <span class='property-internal'>Required (defined)</span>\n     */\n    profileDescription: string | null | undefined;\n\n    /**\n     * The time zone for the import profile <span class='property-internal'>Required (defined)</span>\n     */\n    timeZoneId: number | null | undefined;\n\n    /**\n     * The string that represents how the file contents are delimited <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 1 and 2 characters</span>\n     */\n    delimiter: string | null ;\n\n    /**\n     * The string that represents how the decimal values are separated <span class='property-internal'>Must be between 1 and 2 characters</span> <span class='property-internal'>One of ',', '.'</span> <span class='property-internal'>Case sensitive</span> <span class='property-internal'>Required (defined)</span>\n     */\n    decimalSeparator: string | null | undefined;\n\n    /**\n     * Number of header rows before the data begins (Skip Rows) <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 2147483647</span>\n     */\n    numberOfHeaderRows: number | null ;\n\n    dataPointImportId: ColumnNumberOrOverrideValueString | null | undefined;\n\n    channelImportId: ColumnNumberOrOverrideValueString | null | undefined;\n\n    /**\n     * The format for the Date and Time of the readings. An example is MM/dd/yyyy mm:hh:ss:zzz <span class='property-internal'>Required (defined)</span> <span class='property-internal'>Only one of DateFormat, DateTimeFormat can be set</span> <span class='property-internal'>Only one of TimeFormat, DateTimeFormat can be set</span>\n     */\n    dateTimeFormat: string | null | undefined;\n\n    /**\n     * The number of the column that holds the Date and Time  Mandatory when Date Time Format column is provided <span class='property-internal'>Required when DateTimeFormat is set</span> <span class='property-internal'>Must be between 1 and 104</span>\n     */\n    dateTimeColumnNumber: number | null | undefined;\n\n    /**\n     * The format for the date of the readings. An example is MM/dd/yyyy <span class='property-internal'>Required (defined)</span> <span class='property-internal'>Only one of DateFormat, DateTimeFormat can be set</span>\n     */\n    dateFormat: string | null | undefined;\n\n    /**\n     * The number of the column that holds the date  Mandatory when Date Format column is provided <span class='property-internal'>Required when DateFormat is set</span> <span class='property-internal'>Must be between 1 and 104</span>\n     */\n    dateColumnNumber: number | null | undefined;\n\n    /**\n     * The format for the time of the readings. An example is mm:hh:ss:zzz Mandatory when Date Format column is provided <span class='property-internal'>Required when DateFormat is set</span> <span class='property-internal'>Only one of TimeFormat, DateTimeFormat can be set</span>\n     */\n    timeFormat: string | null | undefined;\n\n    /**\n     * The number of the column that holds the time  Mandatory when Date Format column is provided <span class='property-internal'>Required when DateFormat is set</span> <span class='property-internal'>Must be between 1 and 104</span>\n     */\n    timeColumnNumber: number | null | undefined;\n\n    estimated: Estimated | null | undefined;\n\n    interval: ColumnNumberOrOverrideValueNullableInt32 | null | undefined;\n\n    /**\n     * Column number that holds a note to be stored with the reading <span class='property-internal'>Must be between 1 and 104</span> <span class='property-internal'>Required (defined)</span>\n     */\n    readingNoteColumnNumber: number | null | undefined;\n\n    /**\n     * Column number that holds reading value to be imported onto the ChannelImportId <span class='property-internal'>Must be between 1 and 104</span> <span class='property-internal'>Required when ChannelImportId is set</span> <span class='property-internal'>Only one of ReadingValueColumnNumber, IntervalDataTypes can be set</span>\n     */\n    readingValueColumnNumber: number | null | undefined;\n\n    /**\n     * A list of columns from the import sheet with their observation type and unit <span class='property-internal'>Cannot be Empty</span> <span class='property-internal'>NULL Valid</span> <span class='property-internal'>Required when DataPointImportId is set</span> <span class='property-internal'>Only one of ReadingValueColumnNumber, IntervalDataTypes can be set</span>\n     */\n    intervalDataTypes: Array<EsaReadingImportProfileColumn> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { ColumnNumberOrOverrideValueNullableInt32 } from './columnNumberOrOverrideValueNullableInt32';\nimport { ColumnNumberOrOverrideValueString } from './columnNumberOrOverrideValueString';\nimport { EsaReadingImportProfileColumn } from './esaReadingImportProfileColumn';\nimport { Estimated } from './estimated';\nimport { TimeZoneChild } from './timeZoneChild';\nimport { UserChild } from './userChild';\n\n\nexport class EsaReadingImportProfileResponse {\n    /**\n     * Identifier of the record import profile\n     */\n    profileId: number | null | undefined;\n\n    /**\n     * Name of the import profile\n     */\n    profileInfo: string | null | undefined;\n\n    /**\n     * Description of the import profile\n     */\n    profileDescription: string | null | undefined;\n\n    timeZone: TimeZoneChild | null | undefined;\n\n    /**\n     * The string that represents how the file contents are delimited\n     */\n    delimiter: string | null | undefined;\n\n    /**\n     * The string that represents how the decimal values are separated\n     */\n    decimalSeparator: string | null | undefined;\n\n    /**\n     * Number of header rows before the data begins\n     */\n    numberOfHeaderRows: number | null | undefined;\n\n    dataPointImportId: ColumnNumberOrOverrideValueString | null | undefined;\n\n    channelImportId: ColumnNumberOrOverrideValueString | null | undefined;\n\n    /**\n     * The format for the Date and Time of the readings. An example is MM/dd/yyyy mm:hh:ss:zzz\n     */\n    dateTimeFormat: string | null | undefined;\n\n    /**\n     * The number of the column that holds the Date and Time\n     */\n    dateTimeColumnNumber: number | null | undefined;\n\n    /**\n     * The format for the date of the readings. An example is MM/dd/yyyy\n     */\n    dateFormat: string | null | undefined;\n\n    /**\n     * The number of the column that holds the date\n     */\n    dateColumnNumber: number | null | undefined;\n\n    /**\n     * The format for the time of the readings. An example is mm:hh:ss:zzz\n     */\n    timeFormat: string | null | undefined;\n\n    /**\n     * The number of the column that holds the time\n     */\n    timeColumnNumber: number | null | undefined;\n\n    estimated: Estimated | null | undefined;\n\n    interval: ColumnNumberOrOverrideValueNullableInt32 | null | undefined;\n\n    /**\n     * Column number that holds a note to be stored with the reading\n     */\n    readingNoteColumnNumber: number | null | undefined;\n\n    /**\n     * Column number that holds reading value to be imported onto the ChannelImportId\n     */\n    readingValueColumnNumber: number | null | undefined;\n\n    /**\n     * A list of columns from the import sheet with their observation type and unit\n     */\n    intervalDataTypes: Array<EsaReadingImportProfileColumn> | null | undefined;\n\n    createdBy: UserChild | null | undefined;\n\n    /**\n     * The date and time the import profile was modified\n     */\n    createdDate: Date | null | undefined;\n\n    modifiedBy: UserChild | null | undefined;\n\n    /**\n     * The date and time the import profile was modified\n     */\n    modifiedDate: Date | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { EsaReadingImportProfile } from './esaReadingImportProfile';\n\n\nexport class EsaReadingImportRequest {\n    /**\n     * Name of the import profile <span class='property-internal'>Must be between 0 and 64 characters</span> <span class='property-internal'>Only one of ProfileInfo, InlineProfile can be set</span>\n     */\n    profileInfo: string | null | undefined;\n\n    inlineProfile: EsaReadingImportProfile | null | undefined;\n\n    /**\n     * FileName for the import file. Should include extension. The extension allows the importer to read the data in the proper format (csv, xlsx, zip) <span class='property-internal'>Required</span>\n     */\n    fileName: string | null ;\n\n    /**\n     * The base64 encoded file <span class='property-internal'>Required</span>\n     */\n    fileContent: string | null ;\n\n    /**\n     * Optional note/comment.\n     */\n    importNote: string | null | undefined;\n\n    /**\n     * The type of notification to send when the import is completed with errors. Default is \\\"SystemMessages\\\". <span class='property-internal'>Must be a valid value for NotificationTypeEnum: SystemMessages = 1, BillImportAutomation = 2, BillExportToApAutomation = 3, IntervalDataAutomation = 4, UserGroupMessages = 5, UpdatesAndNewFeatures = 6, HelpArticlesTipsAndSuggestions = 7, CustomerServiceMessages = 8, EnergyStarSubmissionFailures = 9, BillExportToGlAutomation = 10, AutomaticallyCreatedMetersOrAccounts = 11, ExceededLicensedObjectCount = 12, BillCaptureAutomation = 13, TrendInsights = 14, ESADataImports = 15</span>\n     */\n    completeWithErrorsNotificationType: EsaReadingImportRequest.CompleteWithErrorsNotificationTypeEnum;\n\n}\nexport namespace EsaReadingImportRequest {\n    export enum CompleteWithErrorsNotificationTypeEnum {\n        NUMBER_1 = <any> 1,\n        NUMBER_2 = <any> 2,\n        NUMBER_3 = <any> 3,\n        NUMBER_4 = <any> 4,\n        NUMBER_5 = <any> 5,\n        NUMBER_6 = <any> 6,\n        NUMBER_7 = <any> 7,\n        NUMBER_8 = <any> 8,\n        NUMBER_9 = <any> 9,\n        NUMBER_10 = <any> 10,\n        NUMBER_11 = <any> 11,\n        NUMBER_12 = <any> 12,\n        NUMBER_13 = <any> 13,\n        NUMBER_14 = <any> 14,\n        NUMBER_15 = <any> 15\n    }\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { DataPointChild } from './dataPointChild';\nimport { ObservationTypeChildBase } from './observationTypeChildBase';\nimport { UnitChild } from './unitChild';\n\n\nexport class EsaReadingResponse {\n    /**\n     * The reading's raw value\n     */\n    rawValue: number | null | undefined;\n\n    /**\n     * The reading's value after processing\n     */\n    processedValue: number | null | undefined;\n\n    /**\n     * Creation method of the reading.  'Manual' when readings are created by users in the UI 'Imported' when readings are created by imports 'Calculated' when readings are created by calculated channels\n     */\n    creationMethod: string | null | undefined;\n\n    /**\n     * The date and time of the reading\n     */\n    timestamp: Date | null | undefined;\n\n    /**\n     * The date and time of the reading adjusted to the data point's time zone\n     */\n    localTimestamp: Date | null | undefined;\n\n    /**\n     * Indicates whether or not the reading is estimated\n     */\n    estimated: boolean | null | undefined;\n\n    /**\n     * A note pertaining to the reading\n     */\n    note: string | null | undefined;\n\n    /**\n     * Reading's channel ID\n     */\n    esaChannelId: number | null | undefined;\n\n    /**\n     * Reading's channel name\n     */\n    esaChannelInfo: string | null | undefined;\n\n    /**\n     * Indicates if the channel is calculated\n     */\n    isCalculatedEsaChannel: boolean | null | undefined;\n\n    /**\n     * Interval of the reading in minutes\n     */\n    interval: number | null | undefined;\n\n    /**\n     * Interval description for the channel on which the reading was originated\n     */\n    intervalInfo: string | null | undefined;\n\n    unit: UnitChild | null | undefined;\n\n    observationType: ObservationTypeChildBase | null | undefined;\n\n    dataPoint: DataPointChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class EsaReadingSummarizedDelete {\n    /**\n     * The identifier for the ESA channel of the reading <span class='property-internal'>Required</span>\n     */\n    esaChannelId: number | null ;\n\n    /**\n     * The begin date and time of the set of readings to be deleted.  If provided, readings after (but not including) this date and time will be deleted. If provided, and equal to TimeEnd, delete the single reading at this date and time (if present). If not provided, readings since the start of time will be deleted. If TimeEnd is also not provided, ALL readings belonging to EsaChannelId will be deleted.  If UseDataPointTimeZone is false, this time is interpreted as an absolute timestamp. For example, \\\"2024-01-01 05:00:00 -04:00\\\".  If UseDataPointTimeZone is true, the following applies:  The time is presumed to be in the time zone of the data point. If an offset is provided, it will be ignored. For example, if \\\"2024-01-01 05:00:00 -04:00\\\" is provided but the time zone of the data point is \\\"GMT\\\" then this will get turned into \\\"2024-01-01 05:00:00 +00:00\\\" before being applied. If an ambiguous time is provided (for instance 01:30 when the clocks go backward for a DST change) then choose the earliest one in absolute time. If an invalid time is provided (for example 02:30 when the clocks go forward for a DST change) then shift forward by the amount of the DST change (in this example, +1hr will make it 03:30, in the DataPoint's time zone).\n     */\n    timeBegin: Date | null | undefined;\n\n    /**\n     * The end date and time of the set of readings to be deleted.  If provided, readings up to (and including) this date and time will be deleted. If provided, and equal to TimeBegin, delete the single reading at this date and time (if present). If not provided, readings until the end of time will be deleted. If TimeBegin is also not provided, ALL readings belonging to EsaChannelId will be deleted.  See TimeBegin for a discussion of how the value of UseDataPointTimeZone affects the interpretation of this value.\n     */\n    timeEnd: Date | null | undefined;\n\n    /**\n     * \n     */\n    useDataPointTimeZone: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { DataPointChild } from './dataPointChild';\nimport { ObservationTypeChildBase } from './observationTypeChildBase';\nimport { UnitChild } from './unitChild';\nimport { UserChild } from './userChild';\n\n\nexport class EsaReadingSummarizedResponse {\n    /**\n     * \n     */\n    summarizedValue: number | null | undefined;\n\n    /**\n     * Creation method of the reading.  'Manual' when readings are created by users in the UI 'System' when readings are calculated from raw or processed readings\n     */\n    creationMethod: string | null | undefined;\n\n    modifiedBy: UserChild | null | undefined;\n\n    /**\n     * The date and time of the most recent modification\n     */\n    modifiedDate: Date | null | undefined;\n\n    /**\n     * The summarized reading value converted from the channel unit to the common rollup unit value\n     */\n    commonRollupValue: number | null | undefined;\n\n    /**\n     * The summarized reading value converted from the channel unit to the global rollup unit value\n     */\n    globalRollupValue: number | null | undefined;\n\n    /**\n     * The date and time of the reading\n     */\n    timestamp: Date | null | undefined;\n\n    /**\n     * The date and time of the reading adjusted to the data point's time zone\n     */\n    localTimestamp: Date | null | undefined;\n\n    /**\n     * Indicates whether or not the reading is estimated\n     */\n    estimated: boolean | null | undefined;\n\n    /**\n     * A note pertaining to the reading\n     */\n    note: string | null | undefined;\n\n    /**\n     * Reading's channel ID\n     */\n    esaChannelId: number | null | undefined;\n\n    /**\n     * Reading's channel name\n     */\n    esaChannelInfo: string | null | undefined;\n\n    /**\n     * Indicates if the channel is calculated\n     */\n    isCalculatedEsaChannel: boolean | null | undefined;\n\n    /**\n     * Interval of the reading in minutes\n     */\n    interval: number | null | undefined;\n\n    /**\n     * Interval description for the channel on which the reading was originated\n     */\n    intervalInfo: string | null | undefined;\n\n    unit: UnitChild | null | undefined;\n\n    observationType: ObservationTypeChildBase | null | undefined;\n\n    dataPoint: DataPointChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\n/**\n * ESA reading value request\n */\nexport class EsaReadingValue {\n    /**\n     * The date and time of the reading. If the 'seconds' portion of the timestamp is greater than 0 the reading is rounded up to the next minute.   If UseDataPointTimeZone is true any time zone information on the reading is ignored and the reading is saved in the data point's time zone.  If UseDataPointTimeZone is false and a time zone is not present in the timestamp, the reading is saved in UTC.  Else, the reading is saved in the time zone provided.  Note that the time zone of existing readings are not updated. Delete and recreate a reading if you wish to change its 'raw' time zone. In-app reporting will display the reading adjusted to the data point's time zone from the original time zone it was saved in. <span class='property-internal'>Required</span>\n     */\n    timestamp: Date | null ;\n\n    /**\n     * If true, any time zone information on the timestamp property is ignored and the reading is saved in the data point's time zone.   For example, if the timestamp provided is \\\"2024-01-01 05:00:00 -04:00\\\" and the data point's time zone offset is -07:00, the reading will be saved as \\\"2024-01-01 05:00:00 -07:00\\\".  If omitted, this property is presumed to be false, meaning the offset in the timestamp property is honored.\n     */\n    useDataPointTimeZone: boolean | null | undefined;\n\n    /**\n     * The reading's value <span class='property-internal'>Required</span> <span class='property-internal'>Max scale of 15, max precision of 30</span> <span class='property-internal'>Must be between -9999999999999 and 9999999999999</span>\n     */\n    value: number | null ;\n\n    /**\n     * Indicates if the reading is estimated. If omitted, this is presumed to be false.\n     */\n    estimated: boolean | null | undefined;\n\n    /**\n     * A note pertaining to the reading <span class='property-internal'>Max length of 255</span>\n     */\n    note: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\n/**\n * Failed reading value dtos\n */\nexport class EsaReadingValueError {\n    /**\n     * The date and time of the reading\n     */\n    timestamp: Date | null | undefined;\n\n    /**\n     * Indicates if the reading used the data point's time zone\n     */\n    useDataPointTimeZone: boolean | null | undefined;\n\n    /**\n     * The reading's value\n     */\n    value: number | null | undefined;\n\n    /**\n     * Indicates if the reading is estimated\n     */\n    estimated: boolean | null | undefined;\n\n    /**\n     * A note pertaining to the reading\n     */\n    note: string | null | undefined;\n\n    /**\n     * The error message\n     */\n    error: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class EsaSentinelPrediction {\n    /**\n     * \n     */\n    esaChannelId: number | null | undefined;\n\n    /**\n     * \n     */\n    localDateTime: Date | null | undefined;\n\n    /**\n     * \n     */\n    value: number | null | undefined;\n\n    /**\n     * \n     */\n    estimatedUpperBound: number | null | undefined;\n\n    /**\n     * \n     */\n    estimatedLowerBound: number | null | undefined;\n\n    /**\n     * \n     */\n    isOutOfBounds: boolean | null | undefined;\n\n    /**\n     * \n     */\n    outOfBoundsAmount: number | null | undefined;\n\n    /**\n     * \n     */\n    outOfBoundsPercent: number | null | undefined;\n\n    /**\n     * \n     */\n    unit: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class EsaSentinelPredictionRequest {\n    /**\n     * The start local date/time of the range for which predictions are requested. If equal to endLocalDate, returns sentinel prediction at this date and time (if present). Otherwise, returns sentinel predictions since this date and time (exclusive).\n     */\n    startLocalDate: Date | null | undefined;\n\n    /**\n     * The end local date/time of the range for which predictions are requested If equal to startLocalDate, returns sentinel prediction at this date and time (if present). Otherwise, returns sentinel predictions up to (and including) this date and time. <span class='property-internal'>Must be greater than or equal to StartLocalDate</span>\n     */\n    endLocalDate: Date | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class EsaSentinelPredictionResponse {\n    /**\n     * Prediction’s channel ID\n     */\n    esaChannelId: number | null | undefined;\n\n    /**\n     * The local date and time of the prediction. Note that prediction entries will be rounded to hourly intervals.\n     */\n    localDateTime: Date | null | undefined;\n\n    /**\n     * Total offset minutes that the local date and time differ from UTC.\n     */\n    timeZoneTotalOffsetMinutes: number | null | undefined;\n\n    /**\n     * The predicted estimated upper limit for this date/time.\n     */\n    estimatedUpperBound: number | null | undefined;\n\n    /**\n     * The predicted estimated lower limit for this date/time.\n     */\n    estimatedLowerBound: number | null | undefined;\n\n    /**\n     * The predicted estimated value for this date/time.\n     */\n    estimatedValue: number | null | undefined;\n\n    /**\n     * Details for the model that was used to generate the estimates for the date/time.  This may be nothing more than a name assigned to the model (e.g. Facebook Prophet).\n     */\n    sourceModel: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { DateRange } from './dateRange';\nimport { EsaChannelResponse } from './esaChannelResponse';\nimport { EsaSentinelPrediction } from './esaSentinelPrediction';\nimport { ScheduleResponse } from './scheduleResponse';\n\n\nexport class EsaSentinelPredictionsResponse {\n    dateRange: DateRange | null | undefined;\n\n    esaChannel: EsaChannelResponse | null | undefined;\n\n    /**\n     * \n     */\n    values: Array<EsaSentinelPrediction> | null | undefined;\n\n    schedule: ScheduleResponse | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class Estimated {\n    /**\n     * Column number specifying where to look for the estimated indicator <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 1 and 2147483647</span>\n     */\n    columnNumber: number | null ;\n\n    /**\n     * The string used to indicate the reading is estimated If this value is found in the column number specified the reading will be marked as estimated Example: e, E, 1, 0, est, *, this is my estimated read <span class='property-internal'>Required</span>\n     */\n    indicator: string | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class ExportBills {\n    /**\n     * \n     */\n    edit: boolean | null | undefined;\n\n    /**\n     * \n     */\n    delete: boolean | null | undefined;\n\n    /**\n     * \n     */\n    run: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ExportBillsClassPermission {\n    /**\n     * \n     */\n    edit: boolean | null | undefined;\n\n    /**\n     * \n     */\n    delete: boolean | null | undefined;\n\n    /**\n     * \n     */\n    run: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ExportFormatChild {\n    /**\n     * \n     */\n    exportFormatInfo: string | null | undefined;\n\n    /**\n     * \n     */\n    preferred: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class ExportHold {\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ExportHoldClassPermission {\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\n/**\n * Represents workflow settings for bill export\n */\nexport class ExportWorkflowChild {\n    /**\n     * Whether or not payment details should be included in export <span class='property-internal'>Required</span>\n     */\n    includePaymentDetails: boolean | null ;\n\n    /**\n     * Whether or not Export Mode is enabled <span class='property-internal'>Required</span>\n     */\n    exportModeEnabled: boolean | null ;\n\n    /**\n     * The point at which a bill is eligible for export <span class='property-internal'>Required</span> <span class='property-internal'>One of 'never', 'after entry', 'after batch', 'after approval', 'after batch approval'</span>\n     */\n    canExport: string | null ;\n\n    /**\n     * Whether or not custom fields should be included in export <span class='property-internal'>Required</span>\n     */\n    includeUdfs: boolean | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ExportWorkflowSettings {\n    /**\n     * \n     */\n    exportModeEnabled: boolean | null | undefined;\n\n    /**\n     * \n     */\n    canExport: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class FacilityProjects {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    create: boolean | null | undefined;\n\n    /**\n     * \n     */\n    edit: boolean | null | undefined;\n\n    /**\n     * \n     */\n    delete: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class FacilityProjectsClassPermission {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    create: boolean | null | undefined;\n\n    /**\n     * \n     */\n    edit: boolean | null | undefined;\n\n    /**\n     * \n     */\n    delete: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { FailedReadings } from './failedReadings';\n\n\nexport class FailedReadingResponse {\n    /**\n     * \n     */\n    channelId: number | null | undefined;\n\n    /**\n     * \n     */\n    channelImportId: string | null | undefined;\n\n    /**\n     * \n     */\n    meterImportId: string | null | undefined;\n\n    /**\n     * \n     */\n    observationTypeCode: string | null | undefined;\n\n    /**\n     * \n     */\n    unitCode: string | null | undefined;\n\n    /**\n     * \n     */\n    channelIntervalInSeconds: number | null | undefined;\n\n    /**\n     * \n     */\n    readings: Array<FailedReadings> | null | undefined;\n\n    /**\n     * \n     */\n    error: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class FailedReadings {\n    /**\n     * \n     */\n    time: Date | null | undefined;\n\n    /**\n     * \n     */\n    value: number | null | undefined;\n\n    /**\n     * \n     */\n    estimated: boolean | null | undefined;\n\n    /**\n     * \n     */\n    note: string | null | undefined;\n\n    /**\n     * \n     */\n    error: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class FileDataTypeResponse {\n    /**\n     * The id of the file data type\n     */\n    fileDataTypeId: number | null | undefined;\n\n    /**\n     * The code of the file data type\n     */\n    fileDataTypeCode: string | null | undefined;\n\n    /**\n     * The name of the file data type\n     */\n    fileDataTypeInfo: string | null | undefined;\n\n    /**\n     * A list of supported extensions for this file data type\n     */\n    supportedExtensions: Array<string> | null | undefined;\n\n    /**\n     * The maximum size, in bytes, supported for this file data type\n     */\n    maxSizeInBytes: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class FilterDataResponse {\n    /**\n     * \n     */\n    value: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class FilterEdit {\n    /**\n     * Data field ID for the filter <span class='property-internal'>Required</span>\n     */\n    fieldId: number | null ;\n\n    /**\n     * Filter operator expressed as a string (e.g. \\\"equals\\\") <span class='property-internal'>Required</span>\n     */\n    operator: string | null ;\n\n    /**\n     * Filter value\n     */\n    value: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { DataTypeResponse } from './dataTypeResponse';\n\n\nexport class FilterResponse {\n    /**\n     * The list of available operators <span class='property-internal'>Required (defined)</span>\n     */\n    availableOperator: Array<string> | null | undefined;\n\n    /**\n     * The caption of the filter <span class='property-internal'>Required (defined)</span>\n     */\n    caption: string | null | undefined;\n\n    /**\n     * The Query parameter name <span class='property-internal'>Required (defined)</span>\n     */\n    queryParameterName: string | null | undefined;\n\n    /**\n     * The field identifier <span class='property-internal'>Required (defined)</span>\n     */\n    fieldId: number | null | undefined;\n\n    /**\n     * The datafield identifier <span class='property-internal'>Required (defined)</span>\n     */\n    dataFieldId: number | null | undefined;\n\n    dataType: DataTypeResponse | null | undefined;\n\n    /**\n     * The operator <span class='property-internal'>Required (defined)</span>\n     */\n    operator: string | null | undefined;\n\n    /**\n     * The value of the filter <span class='property-internal'>Required (defined)</span>\n     */\n    value: string | null | undefined;\n\n    /**\n     * Indicates if the filter is required\n     */\n    required: boolean | null | undefined;\n\n    /**\n     * Indicates if the filter is recommended <span class='property-internal'>Required (defined)</span>\n     */\n    recommended: boolean | null | undefined;\n\n    /**\n     * Indicates if the filter is hidden <span class='property-internal'>Required (defined)</span>\n     */\n    hidden: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { UnitChild } from './unitChild';\n\n\n/**\n * Fixed amount per unit to apply during bill calculation\n */\nexport class FixedAmountResponse {\n    /**\n     * Fixed amount\n     */\n    amount: number | null | undefined;\n\n    unit: UnitChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class FixedDemandRequest {\n    /**\n     * Fixed demand amount <span class='property-internal'>Required</span> <span class='property-info'>Max scale of 6</span>\n     */\n    fixedDemandAmount: number | null ;\n\n    /**\n     * Unit to which demand is applied <span class='property-internal'>Required</span>\n     */\n    unitId: number | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class FixedPercentage {\n    /**\n     * Destination account ID <span class='property-internal'>Required</span> <span class='property-internal'>Topmost (CostCenter)</span>\n     */\n    destinationAccountId: number | null ;\n\n    /**\n     * Destination meter ID The DestinationMeterId commodity must match the commodity <span class='property-internal'>Required</span> <span class='property-internal'>Topmost (LogicalDevice)</span>\n     */\n    destinationMeterId: number | null ;\n\n    /**\n     * Fixed percentage to apply in bill split for this account and meter Pass the percentage value For example 50.5% should be 50.5 <span class='property-info'>Max scale of 8</span> <span class='property-internal'>Required</span>\n     */\n    splitPercentage: number | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AccountChildWithType } from './accountChildWithType';\nimport { MeterChild } from './meterChild';\nimport { PlaceChildWithFloorArea } from './placeChildWithFloorArea';\n\n\nexport class FixedPercentageResponse {\n    destinationAccount: AccountChildWithType | null | undefined;\n\n    destinationMeter: MeterChild | null | undefined;\n\n    destinationPlace: PlaceChildWithFloorArea | null | undefined;\n\n    /**\n     * Fixed percentage to apply in bill split for this account and meter\n     */\n    splitPercentage: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\n/**\n * Fixed amount per unit to apply during bill calculation\n */\nexport class FixedUnitCostRequest {\n    /**\n     * Fixed unit cost <span class='property-internal'>Required</span> <span class='property-info'>Max scale of 8</span>\n     */\n    unitCost: number | null ;\n\n    /**\n     * Unit to which unit cost is applied <span class='property-internal'>Required</span>\n     */\n    unitId: number | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class FixedUseRequest {\n    /**\n     * Fixed use amount <span class='property-internal'>Required</span> <span class='property-info'>Max scale of 6</span>\n     */\n    fixedUseAmount: number | null ;\n\n    /**\n     * Unit to which use is applied <span class='property-internal'>Required</span>\n     */\n    unitId: number | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class FlagActionChild {\n    /**\n     * The flag action identifier\n     */\n    flagActionId: number | null | undefined;\n\n    /**\n     * Flag action information\n     */\n    flagActionInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class FlagEdit {\n    /**\n     * Type of the flag Note: Audit exception flag type id cannot be assigned manually <span class='property-internal'>Required (defined)</span> <span class='property-internal'>At least one of FlagTypeId, FlagStatusId, CostRecovery, Comment, Assignees must not be null</span>\n     */\n    flagTypeId: number | null | undefined;\n\n    /**\n     * Current status of the flag <span class='property-internal'>One of '1', '2'</span> <span class='property-internal'>Case sensitive</span> <span class='property-internal'>Required (defined)</span> <span class='property-internal'>At least one of FlagTypeId, FlagStatusId, CostRecovery, Comment, Assignees must not be null</span>\n     */\n    flagStatusId: number | null | undefined;\n\n    /**\n     * Cost recovery associated with the issue this flag represents <span class='property-internal'>Required (defined)</span> <span class='property-internal'>At least one of FlagTypeId, FlagStatusId, CostRecovery, Comment, Assignees must not be null</span>\n     */\n    costRecovery: number | null | undefined;\n\n    /**\n     * Event and action that has occurred with this flag <span class='property-internal'>Required (defined)</span> <span class='property-internal'>At least one of FlagTypeId, FlagStatusId, CostRecovery, Comment, Assignees must not be null</span>\n     */\n    comment: string | null | undefined;\n\n    /**\n     * All users currently assigned to this flag <span class='property-internal'>Required (defined)</span> <span class='property-internal'>At least one of FlagTypeId, FlagStatusId, CostRecovery, Comment, Assignees must not be null</span>\n     */\n    assignees: Array<number> | null | undefined;\n\n    /**\n     * Determines whether or not the bill will be released from export hold when resolving the bill flag This property cannot be true if HoldFromExport is true. <span class='property-internal'>Required (defined)</span>\n     */\n    releaseExportHold: boolean | null | undefined;\n\n    /**\n     * Determines whether or not the bill will be held for export when flagging the bill This property cannot be true if ReleaseExportHold is true. <span class='property-internal'>Required (defined)</span>\n     */\n    holdFromExport: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { FlagActionChild } from './flagActionChild';\nimport { UserChild } from './userChild';\n\n\nexport class FlagEventChild {\n    /**\n     * The flag event identifier\n     */\n    flagEventId: number | null | undefined;\n\n    createdBy: UserChild | null | undefined;\n\n    /**\n     * Date that this flag event was created\n     */\n    createdDate: Date | null | undefined;\n\n    /**\n     * Comment about the flag event\n     */\n    comment: string | null | undefined;\n\n    /**\n     * Description of the flag event\n     */\n    description: string | null | undefined;\n\n    flagAction: FlagActionChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class FlagIssueActionChild {\n    /**\n     * The flag issue action identifier\n     */\n    flagIssueActionId: number | null | undefined;\n\n    /**\n     * Flag issue action information\n     */\n    flagIssueActionInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class FlagIssueEdit {\n    /**\n     * The flag issue identifier <span class='property-internal'>Required (defined)</span>\n     */\n    flagIssueId: number | null | undefined;\n\n    /**\n     * Current status of the flag issue <span class='property-internal'>Must be a valid value for FlagStatusEnum: Unresolved = 1, Resolved = 2</span> <span class='property-internal'>Required (defined)</span>\n     */\n    flagIssueStatusId: FlagIssueEdit.FlagIssueStatusIdEnum;\n\n    /**\n     * Comment about the flag issue <span class='property-internal'>Required (defined)</span>\n     */\n    comment: string | null | undefined;\n\n    /**\n     * All users currently assigned to this flag issue <span class='property-internal'>Required (defined)</span>\n     */\n    assignees: Array<number> | null | undefined;\n\n}\nexport namespace FlagIssueEdit {\n    export enum FlagIssueStatusIdEnum {\n        NUMBER_1 = <any> 1,\n        NUMBER_2 = <any> 2\n    }\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class FlagIssueEditAction {\n    /**\n     * Current status of the flag issue <span class='property-internal'>Must be a valid value for FlagStatusEnum: Unresolved = 1, Resolved = 2</span> <span class='property-internal'>Required (defined)</span>\n     */\n    flagIssueStatusId: FlagIssueEditAction.FlagIssueStatusIdEnum;\n\n    /**\n     * Comment about the flag issue <span class='property-internal'>Required (defined)</span>\n     */\n    comment: string | null | undefined;\n\n    /**\n     * All users currently assigned to this flag issue <span class='property-internal'>Required (defined)</span>\n     */\n    assignees: Array<number> | null | undefined;\n\n}\nexport namespace FlagIssueEditAction {\n    export enum FlagIssueStatusIdEnum {\n        NUMBER_1 = <any> 1,\n        NUMBER_2 = <any> 2\n    }\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { FlagIssueActionChild } from './flagIssueActionChild';\nimport { UserChild } from './userChild';\n\n\nexport class FlagIssueEventChild {\n    /**\n     * The flag issue event identifier\n     */\n    flagIssueEventId: number | null | undefined;\n\n    createdBy: UserChild | null | undefined;\n\n    /**\n     * Date that this flag issue event was created\n     */\n    createdDate: Date | null | undefined;\n\n    /**\n     * Comment about the flag issue event\n     */\n    comment: string | null | undefined;\n\n    /**\n     * Description of the flag issue event\n     */\n    description: string | null | undefined;\n\n    flagIssueAction: FlagIssueActionChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { FlagIssueEditAction } from './flagIssueEditAction';\n\n\nexport class FlagIssueListAction {\n    /**\n     * The flag issues to update <span class='property-internal'>Required</span> <span class='property-internal'>Cannot be Empty</span>\n     */\n    flagIssueIds: Array<number> | null ;\n\n    flagIssueAction: FlagIssueEditAction | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { FlagIssueEventChild } from './flagIssueEventChild';\nimport { FlagIssueStatusChild } from './flagIssueStatusChild';\nimport { FlagIssueTypeChild } from './flagIssueTypeChild';\nimport { UserChild } from './userChild';\n\n\nexport class FlagIssueResponse {\n    /**\n     * The flag issue identifier\n     */\n    flagIssueId: number | null | undefined;\n\n    flagIssueType: FlagIssueTypeChild | null | undefined;\n\n    flagIssueStatus: FlagIssueStatusChild | null | undefined;\n\n    /**\n     * All events and actions that have occurred with this issue\n     */\n    flagIssueEvents: Array<FlagIssueEventChild> | null | undefined;\n\n    /**\n     * All users currently assigned to this issue\n     */\n    assignees: Array<UserChild> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class FlagIssueStatusChild {\n    /**\n     * The flag issue status identifier\n     */\n    flagIssueStatusId: number | null | undefined;\n\n    /**\n     * Flag issue status information\n     */\n    flagIssueStatusInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class FlagIssueTypeChild {\n    /**\n     * The flag issue type identifier\n     */\n    flagIssueTypeId: number | null | undefined;\n\n    /**\n     * Flag issue info\n     */\n    flagIssueTypeInfo: string | null | undefined;\n\n    /**\n     * More detailed description of the flag issue type\n     */\n    flagIssueTypeDescription: string | null | undefined;\n\n    /**\n     * Flag issue category\n     */\n    flagIssueCategory: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { FlagEdit } from './flagEdit';\n\n\nexport class FlagListAction {\n    /**\n     * The entities to update <span class='property-internal'>Required (defined)</span>\n     */\n    entityIds: Array<number> | null | undefined;\n\n    flagAction: FlagEdit | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { FlagEventChild } from './flagEventChild';\nimport { FlagIssueTypeChild } from './flagIssueTypeChild';\nimport { FlagStatusChild } from './flagStatusChild';\nimport { FlagTypeChild } from './flagTypeChild';\nimport { UserChild } from './userChild';\n\n\nexport class FlagResponse {\n    /**\n     * The flag identifier\n     */\n    flagId: number | null | undefined;\n\n    flagType: FlagTypeChild | null | undefined;\n\n    flagStatus: FlagStatusChild | null | undefined;\n\n    createdBy: UserChild | null | undefined;\n\n    /**\n     * Date the flag was created\n     */\n    createdDate: Date | null | undefined;\n\n    modifiedBy: UserChild | null | undefined;\n\n    /**\n     * Latest date the flag was modified\n     */\n    modifiedDate: Date | null | undefined;\n\n    /**\n     * Cost recovery associated with the issue this flag represents\n     */\n    costRecovery: number | null | undefined;\n\n    /**\n     * All events and actions that have occurred with this flag\n     */\n    flagEvents: Array<FlagEventChild> | null | undefined;\n\n    /**\n     * All users currently assigned to this flag\n     */\n    assignees: Array<UserChild> | null | undefined;\n\n    /**\n     * All issues associated with the flag Even if the flag is marked as resolved, the list of issues that were on the flag at that time will remain. This keeps a historic record and allows for filtering.\n     */\n    flagIssues: Array<FlagIssueTypeChild> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class FlagStatusChild {\n    /**\n     * The flag status identifier\n     */\n    flagStatusId: number | null | undefined;\n\n    /**\n     * Flag status information\n     */\n    flagStatusInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class FlagTypeChild {\n    /**\n     * The flag type identifier\n     */\n    flagTypeId: number | null | undefined;\n\n    /**\n     * Flag type information\n     */\n    flagTypeInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class FlagTypeCreate {\n    /**\n     * The name of the flag type being created <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 1 and 32 characters</span>\n     */\n    flagTypeInfo: string | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { FlagWidgetChild } from './flagWidgetChild';\n\n\nexport class FlagWidget {\n    /**\n     * The type of entity we are grouping bill flags by - Meter, Account or Building\n     */\n    viewBy: string | null | undefined;\n\n    /**\n     * The status of bill flags - Unresolved or Resolved\n     */\n    flagStatus: string | null | undefined;\n\n    /**\n     * Total cost for all the bills that are represented by the bill flags\n     */\n    totalCost: number | null | undefined;\n\n    /**\n     * Total cost recovery represented by the bill flags\n     */\n    totalCostRecovery: number | null | undefined;\n\n    /**\n     * Total number of bill flags represented\n     */\n    flagCount: number | null | undefined;\n\n    /**\n     * List of bill flag rows The rows are sorted by highest cost , then by highest cost recovery, and then by the item's display alphabetically\n     */\n    results: Array<FlagWidgetChild> | null | undefined;\n\n    /**\n     * Total number of results available If pagination was applied, Results list will have \\\"pagesize\\\" out of  TotalNumberOfResults If pagination was not applied, Results list will have 100 out of  TotalNumberOfResults\n     */\n    totalNumberOfResults: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class FlagWidgetChild {\n    /**\n     * Identifier for the item could be meterId, placeId, accountId\n     */\n    itemId: number | null | undefined;\n\n    /**\n     * Item display (name or code)\n     */\n    itemDisplay: string | null | undefined;\n\n    /**\n     * If item is a meter, this will be commodityCode If item is a building, this will say BUILDING If item is a account, this will say ACCOUNT\n     */\n    itemType: string | null | undefined;\n\n    /**\n     * Identifier for the parent of the item could be placeId, costCenterId\n     */\n    parentId: number | null | undefined;\n\n    /**\n     * Parent display (name or code)\n     */\n    parentDisplay: string | null | undefined;\n\n    /**\n     * If parent is a building, this will say BUILDING For all other types, it will say ORGANIZATION If parent is a costcenter, this will say COSTCENTER\n     */\n    parentItemType: string | null | undefined;\n\n    /**\n     * If the view is by Account or Meter, true indicates the account or meter is a master for a \\\"Bill split\\\"\n     */\n    splitParent: boolean | null | undefined;\n\n    /**\n     * If the view is by Account or Meter, true indicates the account or meter is a recipient of a \\\"Bill split\\\"\n     */\n    splitChild: boolean | null | undefined;\n\n    /**\n     * If the view is by Account or Meter, true indicates the account or meter is part of a \\\"Bill calculation\\\"\n     */\n    calculated: boolean | null | undefined;\n\n    /**\n     * If the view is by Account or Meter, true indicates the account or meter is active\n     */\n    active: boolean | null | undefined;\n\n    /**\n     * Total cost of all the bills that have flags for this item\n     */\n    cost: number | null | undefined;\n\n    /**\n     * Total cost recovery for bill flags for this item\n     */\n    costRecovery: number | null | undefined;\n\n    /**\n     * Total number of bill flags for this item\n     */\n    flagCount: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class FlaggedItems {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class FlaggedItemsClassPermission {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class FloorAreaSplit {\n    /**\n     * Destination account ID There must be an existing relationship between the DestinationAccountId and DestinationMeterId <span class='property-internal'>Required</span> <span class='property-internal'>Topmost (CostCenter)</span>\n     */\n    destinationAccountId: number | null ;\n\n    /**\n     * Destination meter ID There must be an existing relationship between the DestinationAccountId and DestinationMeterId <span class='property-internal'>Required</span> <span class='property-internal'>Topmost (LogicalDevice)</span>\n     */\n    destinationMeterId: number | null ;\n\n    /**\n     * Weighting factor to apply in floor area bill split for this account and meter <span class='property-info'>Max scale of 8</span> <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 1.7976931348623157E+308</span>\n     */\n    weightingFactor: number | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AccountChildWithType } from './accountChildWithType';\nimport { MeterChild } from './meterChild';\nimport { PlaceChildWithFloorArea } from './placeChildWithFloorArea';\n\n\nexport class FloorAreaSplitResponse {\n    destinationAccount: AccountChildWithType | null | undefined;\n\n    destinationMeter: MeterChild | null | undefined;\n\n    destinationPlace: PlaceChildWithFloorArea | null | undefined;\n\n    /**\n     * Weighting factor to apply in floor area bill split for this account and meter\n     */\n    weightingFactor: number | null | undefined;\n\n    /**\n     * Fixed percentage to apply in bill split for this account and meter\n     */\n    splitPercentage: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { TemplateChild } from './templateChild';\n\n\nexport class FormTemplateChild {\n    /**\n     * \n     */\n    formTemplateId: number | null | undefined;\n\n    /**\n     * \n     */\n    displayOrder: number | null | undefined;\n\n    template: TemplateChild | null | undefined;\n\n    /**\n     * \n     */\n    beginDate: Date | null | undefined;\n\n    /**\n     * \n     */\n    endDate: Date | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class FormTemplateRequest {\n    /**\n     * The identifier for the template being assigned <span class='property-internal'>Required</span> <span class='property-internal'>Required</span>\n     */\n    templateId: number | null ;\n\n    /**\n     * The begin date of the template assignment <span class='property-internal'>Required</span> <span class='property-internal'>Required</span>\n     */\n    beginDate: Date | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { TemplateChild } from './templateChild';\n\n\nexport class FormTemplateResponse {\n    /**\n     * The identifier for the template assignment <span class='property-internal'>Required (defined)</span>\n     */\n    formTemplateId: number | null | undefined;\n\n    template: TemplateChild | null | undefined;\n\n    /**\n     * The display order for the bill entry screen <span class='property-internal'>Required (defined)</span>\n     */\n    displayOrder: number | null | undefined;\n\n    /**\n     * The begin date of the template assignment <span class='property-internal'>Required (defined)</span>\n     */\n    beginDate: Date | null | undefined;\n\n    /**\n     * The end date of the template assignment <span class='property-internal'>Required (defined)</span>\n     */\n    endDate: Date | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class FormulaValidationRequest {\n    /**\n     *  <span class='property-internal'>Required</span>\n     */\n    formula: string | null ;\n\n    /**\n     * \n     */\n    dataPointId: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class FormulaValidationResponse {\n    /**\n     * \n     */\n    valid: boolean | null | undefined;\n\n    /**\n     * \n     */\n    errorMessages: Array<string> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class Frequency {\n    /**\n     * Frequency of special adjustment (Continuous or Recurring)\n     */\n    frequency: string | null | undefined;\n\n    /**\n     * Start date\n     */\n    startDate: Date | null | undefined;\n\n    /**\n     * End date\n     */\n    endDate: Date | null | undefined;\n\n    /**\n     * Frequency start period\n     */\n    annualCycleStartMMDD: number | null | undefined;\n\n    /**\n     * Frequency end period\n     */\n    annualCycleEndMMDD: number | null | undefined;\n\n    /**\n     * Frequency cycle beginning of recurrence (format is MMM DD)\n     */\n    annualCycleStartInfo: string | null | undefined;\n\n    /**\n     * Frequency cycle end of recurrence (format is MMM DD)\n     */\n    annualCycleEndInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PlaceInfo } from './placeInfo';\nimport { UnitChild } from './unitChild';\n\n\nexport class GHGBuildingRank {\n    placeInfo: PlaceInfo | null | undefined;\n\n    /**\n     * The place size\n     */\n    placeSize: number | null | undefined;\n\n    placeSizeUnit: UnitChild | null | undefined;\n\n    /**\n     * The overall Greenhouse Gas emissions\n     */\n    emissions: number | null | undefined;\n\n    /**\n     * The Greenhouse Gas emissions from Scope 1\n     */\n    scope1Emissions: number | null | undefined;\n\n    /**\n     * The Greenhouse Gas emissions from Scope 2\n     */\n    scope2Emissions: number | null | undefined;\n\n    /**\n     * The Greenhouse Gas emissions from Scope 3\n     */\n    scope3Emissions: number | null | undefined;\n\n    emissionsUnit: UnitChild | null | undefined;\n\n    /**\n     * The Greenhouse Gas intensity. Emissions/Place Size\n     */\n    intensity: number | null | undefined;\n\n    /**\n     * The item type\n     */\n    type: string | null | undefined;\n\n    /**\n     * The item identifier\n     */\n    id: number | null | undefined;\n\n    /**\n     * The item display name\n     */\n    display: string | null | undefined;\n\n    /**\n     * The item formated value\n     */\n    secondaryDisplay: string | null | undefined;\n\n    /**\n     * The item value\n     */\n    value: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { GHGTargetEmissions } from './gHGTargetEmissions';\nimport { GHGYearlyEmissions } from './gHGYearlyEmissions';\nimport { PeriodRange } from './periodRange';\n\n\nexport class GHGCarbonFootprintResponse {\n    periodRange: PeriodRange | null | undefined;\n\n    targetData: GHGTargetEmissions | null | undefined;\n\n    /**\n     * GHG Emissions data, split by year, then by group and gas type.\n     */\n    yearlyData: Array<GHGYearlyEmissions> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class GHGDefaultFactor {\n    /**\n     * The Greenhouse Gas Factor identifier <span class='property-internal'>Required when FactorType is set to specific factor</span> <span class='property-internal'>Must be null when FactorType  is  set to use meter address</span>\n     */\n    factorId: number | null | undefined;\n\n    /**\n     * The Greenhouse Gas Factor type. The valid values for this field are \\\"use meter address\\\" or \\\"specific factor\\\" <span class='property-internal'>Required</span> <span class='property-internal'>One of 'use meter address', 'specific factor'</span>\n     */\n    factorType: string | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { GHGFactorCategory } from './gHGFactorCategory';\n\n\nexport class GHGFactor {\n    /**\n     * The GHG Factor type. Values for this field can be \\\"use meter address\\\" or \\\"specific factor\\\"\n     */\n    factorType: string | null | undefined;\n\n    factorCategory: GHGFactorCategory | null | undefined;\n\n    /**\n     * The Factor Identifier\n     */\n    factorId: number | null | undefined;\n\n    /**\n     * The Factor Info\n     */\n    factorInfo: string | null | undefined;\n\n    /**\n     * The Factor Description\n     */\n    factorDescription: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class GHGFactorCategory {\n    /**\n     * The Factor Category identifier\n     */\n    factorCategoryId: number | null | undefined;\n\n    /**\n     * The Factor Category Info\n     */\n    factorCategoryInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class GHGFactorChild {\n    /**\n     * The Factor Identifier\n     */\n    factorId: number | null | undefined;\n\n    /**\n     * The Factor Info\n     */\n    factorInfo: string | null | undefined;\n\n    /**\n     * The Factor Description\n     */\n    factorDescription: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class GHGFactorRegion {\n    /**\n     * The Factor Region identifier\n     */\n    factorRegionId: number | null | undefined;\n\n    /**\n     * The Factor Region info\n     */\n    factorRegionInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { GHGFactorCategory } from './gHGFactorCategory';\nimport { GHGFactorRegion } from './gHGFactorRegion';\nimport { UnitChild } from './unitChild';\n\n\nexport class GHGFactorResponse {\n    /**\n     * The factor identifier\n     */\n    factorId: number | null | undefined;\n\n    /**\n     * The factor code\n     */\n    factorCode: string | null | undefined;\n\n    /**\n     * The factor info\n     */\n    factorInfo: string | null | undefined;\n\n    /**\n     * The factor description\n     */\n    factorDescription: string | null | undefined;\n\n    /**\n     * The source organization\n     */\n    sourceOrganization: string | null | undefined;\n\n    /**\n     * The model\n     */\n    model: string | null | undefined;\n\n    factorCategory: GHGFactorCategory | null | undefined;\n\n    fromUnit: UnitChild | null | undefined;\n\n    factorRegion: GHGFactorRegion | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CommodityChild } from './commodityChild';\nimport { GHGFactorCategory } from './gHGFactorCategory';\nimport { GHGVersion } from './gHGVersion';\nimport { UnitChild } from './unitChild';\n\n\nexport class GHGFactorVersionHistoryResponse {\n    /**\n     * Identifier for the factor\n     */\n    factorId: string | null | undefined;\n\n    /**\n     * Name of the factor\n     */\n    factorInfo: string | null | undefined;\n\n    /**\n     * Description of the factor\n     */\n    factorDescription: string | null | undefined;\n\n    factorUnit: UnitChild | null | undefined;\n\n    factorCO2EUnit: UnitChild | null | undefined;\n\n    commodityUnit: UnitChild | null | undefined;\n\n    commodity: CommodityChild | null | undefined;\n\n    factorCategory: GHGFactorCategory | null | undefined;\n\n    /**\n     * List of versions\n     */\n    versions: Array<GHGVersion> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CommodityChild } from './commodityChild';\nimport { GHGTypeChild } from './gHGTypeChild';\nimport { UnitChild } from './unitChild';\n\n\nexport class GHGFactorsResponse {\n    /**\n     * The identifier for ghg factor\n     */\n    ghgFactorId: number | null | undefined;\n\n    /**\n     * The ghg factor\n     */\n    ghgFactor: number | null | undefined;\n\n    /**\n     * The ghg CO2 factor\n     */\n    ghgCO2Factor: number | null | undefined;\n\n    /**\n     * The start date\n     */\n    startDate: Date | null | undefined;\n\n    /**\n     * The end date\n     */\n    endDate: Date | null | undefined;\n\n    /**\n     * The description\n     */\n    description: string | null | undefined;\n\n    /**\n     * The notes\n     */\n    memo: string | null | undefined;\n\n    ghgType: GHGTypeChild | null | undefined;\n\n    commodityUnit: UnitChild | null | undefined;\n\n    ghgUnit: UnitChild | null | undefined;\n\n    commodity: CommodityChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class GHGGas {\n    /**\n     * Gas identifier\n     */\n    gasId: number | null | undefined;\n\n    /**\n     * Gas descrption\n     */\n    gasInfo: string | null | undefined;\n\n    /**\n     * Gas amount\n     */\n    gasAmount: number | null | undefined;\n\n    /**\n     * Co2Evalue\n     */\n    co2Evalue: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class GHGGroupEmissions {\n    /**\n     * The name of the greenhouse gas.\n     */\n    groupInfo: string | null | undefined;\n\n    /**\n     * The total emissions for this gas, in CO2 Equivalent.\n     */\n    totalEmissions: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { UnitChild } from './unitChild';\n\n\nexport class GHGPerformanceComparison {\n    /**\n     * The record type\n     */\n    type: string | null | undefined;\n\n    /**\n     * The performance comparison identifier\n     */\n    id: number | null | undefined;\n\n    /**\n     * The label\n     */\n    label: string | null | undefined;\n\n    /**\n     * The current use\n     */\n    currentUse: number | null | undefined;\n\n    /**\n     * The current cost\n     */\n    currentCost: number | null | undefined;\n\n    /**\n     * The current emissions\n     */\n    currentEmissions: number | null | undefined;\n\n    /**\n     * The previous use\n     */\n    previousUse: number | null | undefined;\n\n    /**\n     * The previous cost\n     */\n    previousCost: number | null | undefined;\n\n    /**\n     * The previous emissions\n     */\n    previousEmissions: number | null | undefined;\n\n    /**\n     * The use KPI variance\n     */\n    usePercentDiff: number | null | undefined;\n\n    /**\n     * The cost KPI variance\n     */\n    costPercentDiff: number | null | undefined;\n\n    /**\n     * The emission KPI variance\n     */\n    emissionsPercentDiff: number | null | undefined;\n\n    useUnit: UnitChild | null | undefined;\n\n    emissionsUnit: UnitChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class GHGScope {\n    /**\n     * The Scope Identifier\n     */\n    scopeId: number | null | undefined;\n\n    /**\n     * The Scope Info\n     */\n    scopeInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { GHGScope } from './gHGScope';\n\n\nexport class GHGScopeCategory {\n    scope: GHGScope | null | undefined;\n\n    /**\n     * The GHG Scope Category Identifier\n     */\n    scopeCategoryId: number | null | undefined;\n\n    /**\n     * The GHG Scope Category Info\n     */\n    scopeCategoryInfo: string | null | undefined;\n\n    /**\n     * The GHG Scope Category Description\n     */\n    scopeCategoryDescription: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class GHGScopeCategoryChild {\n    /**\n     * The GHG Scope Category Identifier\n     */\n    scopeCategoryId: number | null | undefined;\n\n    /**\n     * The GHG Scope Category Info\n     */\n    scopeCategoryInfo: string | null | undefined;\n\n    /**\n     * The GHG Scope Category Description\n     */\n    scopeCategoryDescription: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { GHGScopeCategoryChild } from './gHGScopeCategoryChild';\n\n\nexport class GHGScopeResponse {\n    /**\n     * The Scope Identifier\n     */\n    scopeId: number | null | undefined;\n\n    /**\n     * The Scope Info\n     */\n    scopeInfo: string | null | undefined;\n\n    /**\n     * The list of Scope Categories under this scope\n     */\n    scopeCategories: Array<GHGScopeCategoryChild> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { GHGFactor } from './gHGFactor';\nimport { GHGScopeCategory } from './gHGScopeCategory';\n\n\nexport class GHGSettingResponse {\n    scopeCategory: GHGScopeCategory | null | undefined;\n\n    factor: GHGFactor | null | undefined;\n\n    /**\n     * If true, this meter is using the default GHG settings that were in effect at the time the meter was created\n     */\n    usingDefaultSettings: boolean | null | undefined;\n\n    /**\n     * Flag indicating whether or not configuration exists for this meter.  If false, EnergyCap.DTO.V202210.GHG.GHGSettingResponseDTO.Factor or EnergyCap.DTO.V202210.GHG.GHGSettingResponseDTO.ScopeCategory may be null.\n     */\n    isConfigured: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { UnitChild } from './unitChild';\n\n\nexport class GHGSettings {\n    /**\n     * The GHG Global Warming Assessment Report (AR) identifier\n     */\n    globalWarmingAssessmentReportId: number | null | undefined;\n\n    /**\n     * The GHG Global Warming Assessment Report (AR) name\n     */\n    globalWarmingAssessmentReportInfo: string | null | undefined;\n\n    reportingUnit: UnitChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { GHGYearlyEmissions } from './gHGYearlyEmissions';\n\n\nexport class GHGTargetEmissions {\n    baseTargetYear: GHGYearlyEmissions | null | undefined;\n\n    adjustedTargetYear: GHGYearlyEmissions | null | undefined;\n\n    adjustedYTDTargetYear: GHGYearlyEmissions | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class GHGTypeChild {\n    /**\n     * The identifier for the ghg type\n     */\n    ghgTypeId: number | null | undefined;\n\n    /**\n     * The ghg type code\n     */\n    ghgTypeCode: string | null | undefined;\n\n    /**\n     * The ghg type info\n     */\n    ghgTypeInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { GHGGas } from './gHGGas';\n\n\nexport class GHGVersion {\n    /**\n     * Effective Date\n     */\n    effectiveDate: Date | null | undefined;\n\n    /**\n     * Source\n     */\n    source: string | null | undefined;\n\n    /**\n     * List of gases per version.\n     */\n    gases: Array<GHGGas> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { GHGGroupEmissions } from './gHGGroupEmissions';\n\n\nexport class GHGYearlyEmissions {\n    /**\n     * The year this data belongs to.\n     */\n    year: string | null | undefined;\n\n    /**\n     * The total emissions for this year, in CO2 Equivalent\n     */\n    totalYearlyEmissions: number | null | undefined;\n\n    /**\n     * A percentage value that represents how close to the target year this year's data is. A positive value means the current year is over the target, a negative value means the current year is under the target. Field is null if target data is not available.\n     */\n    targetPerformancePercentage: number | null | undefined;\n\n    /**\n     * The total emissions for this year, grouped by gas type.\n     */\n    yearlyEmissionsByGasType: Array<GHGGroupEmissions> | null | undefined;\n\n    /**\n     * The total emissions for this year, grouped by Scope, Commodity, or Scope Category.\n     */\n    yearlyEmissionsByGroup: Array<GHGGroupEmissions> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { GHGasDefaultSettingRequestCommodityChild } from './gHGasDefaultSettingRequestCommodityChild';\n\n\nexport class GHGasDefaultSettingRequest {\n    /**\n     * Do we want to an create emission source automatically when we create a new meter? <span class='property-internal'>Required (defined)</span>\n     */\n    createEmissionSourcesForMeters: boolean | null | undefined;\n\n    /**\n     * The Commodity default settings <span class='property-internal'>Required</span>\n     */\n    defaultSettings: Array<GHGasDefaultSettingRequestCommodityChild> | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { GHGasDefaultSettingRequestScopeCategoryAndFactorChild } from './gHGasDefaultSettingRequestScopeCategoryAndFactorChild';\n\n\nexport class GHGasDefaultSettingRequestCommodityChild {\n    /**\n     * The Commodity ID <span class='property-internal'>Required (defined)</span>\n     */\n    commodityId: number | null | undefined;\n\n    /**\n     * The Commodity default settings <span class='property-internal'>Required</span>\n     */\n    defaultSettings: Array<GHGasDefaultSettingRequestScopeCategoryAndFactorChild> | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { GHGDefaultFactor } from './gHGDefaultFactor';\n\n\nexport class GHGasDefaultSettingRequestScopeCategoryAndFactorChild {\n    /**\n     * The Greenhouse Gas Scope category identifier <span class='property-internal'>Required (defined)</span>\n     */\n    scopeCategoryId: number | null | undefined;\n\n    defaultFactor: GHGDefaultFactor | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { GHGasDefaultSettingResponseCommodityChild } from './gHGasDefaultSettingResponseCommodityChild';\n\n\nexport class GHGasDefaultSettingResponse {\n    /**\n     * Do we want to an create emission source automatically when we create a new meter?\n     */\n    createEmissionSourcesForMeters: boolean | null | undefined;\n\n    /**\n     * The default commodity settings\n     */\n    defaultSettings: Array<GHGasDefaultSettingResponseCommodityChild> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { IGHGDefaultScopeCategoryAndFactor } from './iGHGDefaultScopeCategoryAndFactor';\nimport { Icon } from './icon';\n\n\nexport class GHGasDefaultSettingResponseCommodityChild {\n    /**\n     * The Commodity default settings\n     */\n    defaultSettings: Array<IGHGDefaultScopeCategoryAndFactor> | null | undefined;\n\n    /**\n     * The Commodity ID\n     */\n    commodityId: number | null | undefined;\n\n    /**\n     * The Commodity Code\n     */\n    commodityCode: string | null | undefined;\n\n    /**\n     * The Commodity Info\n     */\n    commodityInfo: string | null | undefined;\n\n    commodityIcon: Icon | null | undefined;\n\n    /**\n     * Flag to indicate if the commodity is assigned to any meters\n     */\n    inUseByVendor: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { GHGasFactorChild } from './gHGasFactorChild';\nimport { GHGasScopeCategoryChild } from './gHGasScopeCategoryChild';\n\n\nexport class GHGasFactorAndScopeCategoryPair {\n    /**\n     * Flag to indicate if this pair is the default Factor/Category pair for an Emission Source\n     */\n    isDefaultFactor: boolean | null | undefined;\n\n    scopeCategory: GHGasScopeCategoryChild | null | undefined;\n\n    factor: GHGasFactorChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { GHGDefaultFactor } from './gHGDefaultFactor';\n\n\nexport class GHGasFactorAndScopeCategoryPairCreate {\n    factor: GHGDefaultFactor | null | undefined;\n\n    /**\n     * The Scope Category ID to use for this Factor/Category Pairing <span class='property-internal'>Required (defined)</span>\n     */\n    scopeCategoryId: number | null | undefined;\n\n    /**\n     * Flag to indicate if this Factor and Category should be considered the default for this Emission Source <span class='property-internal'>Required (defined)</span>\n     */\n    isDefault: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class GHGasFactorChild {\n    /**\n     * The identifier for this factor\n     */\n    factorId: number | null | undefined;\n\n    /**\n     * The code for this factor\n     */\n    factorCode: string | null | undefined;\n\n    /**\n     * The name of this factor\n     */\n    factorInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class GHGasScopeCategoryChild {\n    /**\n     * The identifier for this Scope Category\n     */\n    scopeCategoryId: number | null | undefined;\n\n    /**\n     * The name of this Scope Category\n     */\n    scopeCategoryInfo: string | null | undefined;\n\n    /**\n     * The description of this Scope Category\n     */\n    scopeCategoryDescription: string | null | undefined;\n\n    /**\n     * The Scope this Scope Category belongs to\n     */\n    scopeId: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class GLSubCodeChild {\n    /**\n     * Index of this subcode (01-20)\n     */\n    subCodeIndex: string | null | undefined;\n\n    /**\n     * Name for this SubCode\n     */\n    subCodeName: string | null | undefined;\n\n    /**\n     * The value assigned to the subcode\n     */\n    value: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class GLSubCodeChildRequest {\n    /**\n     * Index of this sub code (1-20) <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 1 and 20</span>\n     */\n    subCodeIndex: number | null ;\n\n    /**\n     * Value for the sub code <span class='property-internal'>Must be between 0 and 25 characters</span>\n     */\n    value: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class GLSubcodeRequest {\n    /**\n     * Index of this subcode (1-20) <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 1 and 20</span>\n     */\n    subCodeIndex: number | null ;\n\n    /**\n     * Name for this SubCode <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 32 characters</span>\n     */\n    subCodeName: string | null ;\n\n    /**\n     * SubCodeType - should be \\\"list\\\"(fixed=1 in DB) or \\\"text\\\" (fixed=0 in DB) <span class='property-internal'>Required</span> <span class='property-internal'>One of 'list', 'text'</span>\n     */\n    subCodeType: string | null ;\n\n    /**\n     * An array of pick list values when this subcode is a \\\"list\\\" <span class='property-internal'>Required when subCodeType is set to list</span>\n     */\n    subCodeValues: Array<string> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class GLSubcodeResponse {\n    /**\n     * Index of this subcode (01-20)\n     */\n    subCodeIndex: string | null | undefined;\n\n    /**\n     * Name for this SubCode\n     */\n    subCodeName: string | null | undefined;\n\n    /**\n     * SubCodeType - will be \\\"list\\\"(if fixed=1 in DB) or \\\"text\\\" (if fixed=0) in DB\n     */\n    subCodeType: string | null | undefined;\n\n    /**\n     * An array of pick list values when this subcode is a \\\"list\\\"\n     */\n    subCodeValues: Array<string> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class GeneralLedgerChild {\n    /**\n     * \n     */\n    generalLedgerId: number | null | undefined;\n\n    /**\n     * \n     */\n    generalLedgerCode: string | null | undefined;\n\n    /**\n     * \n     */\n    generalLedgerInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { GLSubCodeChildRequest } from './gLSubCodeChildRequest';\n\n\nexport class GeneralLedgerRequest {\n    /**\n     * Unique identifier for the General Ledger <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 255 characters</span>\n     */\n    generalLedgerCode: string | null ;\n\n    /**\n     * List of 20 sub codes and their values <span class='property-internal'>Required</span>\n     */\n    subCodes: Array<GLSubCodeChildRequest> | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { GLSubCodeChild } from './gLSubCodeChild';\n\n\nexport class GeneralLedgerResponse {\n    /**\n     * General Ledger Identifier\n     */\n    generalLedgerId: number | null | undefined;\n\n    /**\n     * Unique code for the general ledger\n     */\n    generalLedgerCode: string | null | undefined;\n\n    /**\n     * List of 20 subCodes with their index, name, and value\n     */\n    subCodes: Array<GLSubCodeChild> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\n/**\n * Representation of a generic \\\"empty\\\" bodyline which is not associated with a specific bill or template\n */\nexport class GenericBodylineRequest {\n    /**\n     * The observation type For account body lines the observation type must be a charge type <span class='property-internal'>Required when CalculationType is set to Fixed, or Percentage</span>\n     */\n    observationTypeId: number | null | undefined;\n\n    /**\n     * The caption <span class='property-internal'>Must be between 0 and 100 characters</span> <span class='property-internal'>Required when CalculationType is set to Fixed, or Percentage, or Subtotal</span>\n     */\n    caption: string | null | undefined;\n\n    /**\n     * The calculation type for the line item <span class='property-internal'>One of 'Fixed', 'Percentage', 'Subtotal'</span> <span class='property-internal'>Required (defined)</span>\n     */\n    calculationType: string | null | undefined;\n\n    /**\n     * The bodyline's value When CalculationType is Fixed.  Precision max is 2 When CalculationType is Percentage.  Precision max is 8 <span class='property-internal'>Required when CalculationType is set to Fixed, or Percentage</span>\n     */\n    value: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { ObservationTypeChild } from './observationTypeChild';\n\n\n/**\n * Representation of a generic \\\"empty\\\" bodyline which is not associated with a specific bill or template\n */\nexport class GenericBodylineResponse {\n    observationType: ObservationTypeChild | null | undefined;\n\n    /**\n     * The caption\n     */\n    caption: string | null | undefined;\n\n    /**\n     * The calculation type for the line item.  Either \\\"Fixed\\\", \\\"Percentage\\\", or \\\"Subtotal\\\"\n     */\n    calculationType: string | null | undefined;\n\n    /**\n     * The bodyline's value\n     */\n    value: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class GenericCount {\n    /**\n     * Number of items\n     */\n    count: number | null | undefined;\n\n    /**\n     * A short description of the items counted\n     */\n    description: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class GlobalCostAvoidanceSettings {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class GlobalCostAvoidanceSettingsClassPermission {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class GreenhouseGasAdministrator {\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class GreenhouseGasAdministratorClassPermission {\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\n/**\n * Display settings for the user when viewing benchmark charts\n */\nexport class GroupDisplaySetting {\n    /**\n     * Date period type Possible value include 1 (Last Twelve Months), 2 (Last Calendar Year), 3 (Last Fiscal Year), 4 (User Defined Range) <span class='property-internal'>One of '1', '2', '3', '4'</span> <span class='property-internal'>Case sensitive</span>\n     */\n    periodType: number | null | undefined;\n\n    /**\n     * Benchmark Chart Start Period when using Period Type 4 (User Defined Range) Will return null for all other period types <span class='property-internal'>Required when PeriodType is set to 4, case sensitive.</span> <span class='property-internal'>Valid billing period between 190001 and 300001</span> <span class='property-internal'>NULL Valid</span>\n     */\n    userDefinedRangeStartPeriod: number | null | undefined;\n\n    /**\n     * Benchmark Chart End Period when using Period Type 4 (User Defined Range) Will return null for all other period types <span class='property-internal'>Required when PeriodType is set to 4, case sensitive.</span> <span class='property-internal'>Valid billing period between 190001 and 300001</span> <span class='property-internal'>NULL Valid</span> <span class='property-internal'>Must be greater than or equal to UserDefinedRangeStartPeriod</span>\n     */\n    userDefinedRangeEndPeriod: number | null | undefined;\n\n    /**\n     * Data view (actual, calendarized, normalized) <span class='property-internal'>One of 'actual', 'calendarized', 'normalized'</span> <span class='property-internal'>Case sensitive</span>\n     */\n    dataView: string | null | undefined;\n\n    /**\n     * Unique identifier of the commodity by which benchmark charts will be filtered\n     */\n    commodityId: number | null | undefined;\n\n    /**\n     * Unique identifier of the commodity category by which benchmark charts will be filtered\n     */\n    commodityCategoryId: number | null | undefined;\n\n    /**\n     * Indicates whether or not to show excluded group members\n     */\n    showExcludedMembers: boolean | null | undefined;\n\n    /**\n     * Indicates whether or not to show zero averages in benchmark charts\n     */\n    showZeroAverages: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class GroupMemberRequest {\n    /**\n     * The flag determining whether the member is included in group charts <span class='property-internal'>Required</span>\n     */\n    includeInCharts: boolean | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { FilterResponse } from './filterResponse';\nimport { MeterGroupCategoryChild } from './meterGroupCategoryChild';\n\n\nexport class GroupMeterGroupResponse {\n    /**\n     * The meter group identifier\n     */\n    meterGroupId: number | null | undefined;\n\n    /**\n     * The meter group code\n     */\n    meterGroupCode: string | null | undefined;\n\n    /**\n     * The meter group info\n     */\n    meterGroupInfo: string | null | undefined;\n\n    /**\n     * Indicates if this meter group is an autogroup\n     */\n    autoGroup: boolean | null | undefined;\n\n    /**\n     * The number of meters in this group\n     */\n    memberCount: number | null | undefined;\n\n    /**\n     * The number of meters within the currently authenticated user's topmost\n     */\n    memberCountWithTopmost: number | null | undefined;\n\n    meterGroupCategory: MeterGroupCategoryChild | null | undefined;\n\n    /**\n     * Indicates if the meter group has been set limit the list of members by the user's topmost\n     */\n    limitMembersByTopmost: boolean | null | undefined;\n\n    /**\n     * Indicates if this meter group is an user defined auto group\n     */\n    userDefinedAutoGroup: boolean | null | undefined;\n\n    /**\n     * The filters applied to determine the members of a user defined auto group\n     */\n    userDefinedAutoGroupFilters: Array<FilterResponse> | null | undefined;\n\n    /**\n     * The last time a member was inserted, updated, or deleted from the group\n     */\n    lastUpdated: Date | null | undefined;\n\n    /**\n     * The commodity code for the meters in this group -  if all meters belong to the same commodity the commodity code will be used here if meters belong to different commodities, value will be \\\"MULTIPLE\\\" if this group has no meters, value will be \\\"\\\"\n     */\n    memberCommodityCode: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PlaceChild } from './placeChild';\nimport { PlaceTypeResponse } from './placeTypeResponse';\n\n\nexport class GroupPlaceGroupMember {\n    /**\n     * The place identifier <span class='property-internal'>Required (defined)</span>\n     */\n    placeId: number | null | undefined;\n\n    /**\n     * The place code <span class='property-internal'>Required (defined)</span>\n     */\n    placeCode: string | null | undefined;\n\n    /**\n     * The place info <span class='property-internal'>Required (defined)</span>\n     */\n    placeInfo: string | null | undefined;\n\n    parent: PlaceChild | null | undefined;\n\n    placeType: PlaceTypeResponse | null | undefined;\n\n    /**\n     * The flag determining whether the place is included in group charts <span class='property-internal'>Required (defined)</span>\n     */\n    includeInCharts: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { FilterResponse } from './filterResponse';\nimport { PlaceGroupCategoryChild } from './placeGroupCategoryChild';\n\n\nexport class GroupPlaceGroupResponse {\n    /**\n     * The place group identifier\n     */\n    placeGroupId: number | null | undefined;\n\n    /**\n     * The place group code\n     */\n    placeGroupCode: string | null | undefined;\n\n    /**\n     * The place group info\n     */\n    placeGroupInfo: string | null | undefined;\n\n    /**\n     * Indicates if this place group is an autogroup\n     */\n    autoGroup: boolean | null | undefined;\n\n    /**\n     * The number of places in this group\n     */\n    memberCount: number | null | undefined;\n\n    /**\n     * The number of places within the currently authenticated user's topmost\n     */\n    memberCountWithTopmost: number | null | undefined;\n\n    placeGroupCategory: PlaceGroupCategoryChild | null | undefined;\n\n    /**\n     * Indicates if the place group has been set limit the list of members by the user's topmost\n     */\n    limitMembersByTopmost: boolean | null | undefined;\n\n    /**\n     * Indicates if this place group is an user defined auto group\n     */\n    userDefinedAutoGroup: boolean | null | undefined;\n\n    /**\n     * The filters applied to determine the members of a user defined auto group\n     */\n    userDefinedAutoGroupFilters: Array<FilterResponse> | null | undefined;\n\n    /**\n     * The last time a member was inserted, updated, or deleted from the group\n     */\n    lastUpdated: Date | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class GroupsAndBenchmarksModule {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class GroupsAndBenchmarksModuleClassPermission {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class GuidResponse {\n    /**\n     * A guid that identifies the current task\n     */\n    taskGUId: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class HiddenRequest {\n    /**\n     * Set a system user role to be hidden or shown Roles Manage permission is required to access hidden roles <span class='property-internal'>Required</span>\n     */\n    hidden: boolean | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { HierarchicalCollections2 } from './hierarchicalCollections2';\nimport { HierarchicalEmissionSource } from './hierarchicalEmissionSource';\nimport { Icon } from './icon';\n\n\nexport class HierarchicalCollections {\n    /**\n     * The collection's parent\n     */\n    parentId: number | null | undefined;\n\n    /**\n     * The collection's primary ID\n     */\n    collectionId: number | null | undefined;\n\n    /**\n     * The collection info\n     */\n    collectionInfo: string | null | undefined;\n\n    /**\n     * The collection code\n     */\n    collectionCode: string | null | undefined;\n\n    collectionIcon: Icon | null | undefined;\n\n    /**\n     * If this collection has any children, either emission sources or collections\n     */\n    hasChildren: boolean | null | undefined;\n\n    /**\n     * If this collection has any collection children\n     */\n    hasCollectionChildren: boolean | null | undefined;\n\n    /**\n     * If this collection has any emission source children\n     */\n    hasEmissionSourceChildren: boolean | null | undefined;\n\n    /**\n     * If this collection has any collection children or active emission source children\n     */\n    hasActiveChildren: boolean | null | undefined;\n\n    /**\n     * If this collection has any active emission source children\n     */\n    hasActiveEmissionSourceChildren: boolean | null | undefined;\n\n    /**\n     * List of emission source children\n     */\n    emissionSourceChildren: Array<HierarchicalEmissionSource> | null | undefined;\n\n    /**\n     * List of collection children\n     */\n    collectionChildren: Array<HierarchicalCollections2> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { HierarchicalCollections } from './hierarchicalCollections';\nimport { HierarchicalEmissionSource } from './hierarchicalEmissionSource';\nimport { Icon } from './icon';\n\n\nexport class HierarchicalCollections2 {\n    /**\n     * \n     */\n    parentId: number | null | undefined;\n\n    /**\n     * \n     */\n    collectionId: number | null | undefined;\n\n    /**\n     * \n     */\n    collectionInfo: string | null | undefined;\n\n    /**\n     * \n     */\n    collectionCode: string | null | undefined;\n\n    collectionIcon: Icon | null | undefined;\n\n    /**\n     * \n     */\n    hasChildren: boolean | null | undefined;\n\n    /**\n     * \n     */\n    hasCollectionChildren: boolean | null | undefined;\n\n    /**\n     * \n     */\n    hasEmissionSourceChildren: boolean | null | undefined;\n\n    /**\n     * \n     */\n    hasActiveChildren: boolean | null | undefined;\n\n    /**\n     * \n     */\n    hasActiveEmissionSourceChildren: boolean | null | undefined;\n\n    /**\n     * \n     */\n    emissionSourceChildren: Array<HierarchicalEmissionSource> | null | undefined;\n\n    /**\n     * \n     */\n    collectionChildren: Array<HierarchicalCollections> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CostCenterAccountChild } from './costCenterAccountChild';\nimport { HierarchicalCostCenters2 } from './hierarchicalCostCenters2';\n\n\nexport class HierarchicalCostCenters {\n    /**\n     * The cost center's parent\n     */\n    parentId: number | null | undefined;\n\n    /**\n     * The cost center's primary ID\n     */\n    costCenterId: number | null | undefined;\n\n    /**\n     * CostCenterInfo\n     */\n    costCenterInfo: string | null | undefined;\n\n    /**\n     * CostCenterCode\n     */\n    costCenterCode: string | null | undefined;\n\n    /**\n     * If this costCenter has any children, either accounts or costCenters\n     */\n    hasChildren: boolean | null | undefined;\n\n    /**\n     * If this costCenter has any costCenter children\n     */\n    hasCostCenterChildren: boolean | null | undefined;\n\n    /**\n     * If this costCenter has any account children\n     */\n    hasAccountChildren: boolean | null | undefined;\n\n    /**\n     * If this costCenter has any costCenter children or active account children\n     */\n    hasActiveChildren: boolean | null | undefined;\n\n    /**\n     * If this costCenter has any active account children\n     */\n    hasActiveAccountChildren: boolean | null | undefined;\n\n    /**\n     * List of account children\n     */\n    accountChildren: Array<CostCenterAccountChild> | null | undefined;\n\n    /**\n     * List of costCenter children\n     */\n    costCenterChildren: Array<HierarchicalCostCenters2> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CostCenterAccountChild } from './costCenterAccountChild';\nimport { HierarchicalCostCenters } from './hierarchicalCostCenters';\n\n\nexport class HierarchicalCostCenters2 {\n    /**\n     * \n     */\n    parentId: number | null | undefined;\n\n    /**\n     * \n     */\n    costCenterId: number | null | undefined;\n\n    /**\n     * \n     */\n    costCenterInfo: string | null | undefined;\n\n    /**\n     * \n     */\n    costCenterCode: string | null | undefined;\n\n    /**\n     * \n     */\n    hasChildren: boolean | null | undefined;\n\n    /**\n     * \n     */\n    hasCostCenterChildren: boolean | null | undefined;\n\n    /**\n     * \n     */\n    hasAccountChildren: boolean | null | undefined;\n\n    /**\n     * \n     */\n    hasActiveChildren: boolean | null | undefined;\n\n    /**\n     * \n     */\n    hasActiveAccountChildren: boolean | null | undefined;\n\n    /**\n     * \n     */\n    accountChildren: Array<CostCenterAccountChild> | null | undefined;\n\n    /**\n     * \n     */\n    costCenterChildren: Array<HierarchicalCostCenters> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CommodityChild } from './commodityChild';\n\n\nexport class HierarchicalDataPoint {\n    /**\n     * The data point identifier\n     */\n    dataPointId: number | null | undefined;\n\n    /**\n     * The data point code\n     */\n    dataPointCode: string | null | undefined;\n\n    /**\n     * The data point info\n     */\n    dataPointInfo: string | null | undefined;\n\n    commodity: CommodityChild | null | undefined;\n\n    /**\n     * Indicates whether the data point is Active\n     */\n    active: boolean | null | undefined;\n\n    /**\n     * Indicates whether the data point is a calculated data point\n     */\n    isCalculatedDataPoint: boolean | null | undefined;\n\n    /**\n     * The data point's current serial number\n     */\n    serialNumber: string | null | undefined;\n\n    /**\n     * Indicates if the primary value channel on the datapoint has a summarization method of SUM\n     */\n    isDataRolledUp: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CommodityChild } from './commodityChild';\n\n\nexport class HierarchicalEmissionSource {\n    /**\n     * Indicates if the emission source has a EUM Meter link\n     */\n    hasEUMMeter: boolean | null | undefined;\n\n    /**\n     * The emission source identifier\n     */\n    emissionSourceId: number | null | undefined;\n\n    /**\n     * The emission source code\n     */\n    emissionSourceCode: string | null | undefined;\n\n    /**\n     * The emission source info\n     */\n    emissionSourceInfo: string | null | undefined;\n\n    /**\n     * Whether the emission source is active or not\n     */\n    active: boolean | null | undefined;\n\n    commodity: CommodityChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CommodityChild } from './commodityChild';\nimport { MeterTypeChild } from './meterTypeChild';\n\n\nexport class HierarchicalMeter {\n    /**\n     * Indicates if the meter has a Smart Analytics (Wattics) Data Point link\n     */\n    hasWatticsDataPoint: boolean | null | undefined;\n\n    /**\n     * Indicates if the meter has an Emission Source link\n     */\n    hasEmissionSource: boolean | null | undefined;\n\n    /**\n     * The meter identifier\n     */\n    meterId: number | null | undefined;\n\n    /**\n     * The meter code\n     */\n    meterCode: string | null | undefined;\n\n    /**\n     * The meter info\n     */\n    meterInfo: string | null | undefined;\n\n    meterType: MeterTypeChild | null | undefined;\n\n    commodity: CommodityChild | null | undefined;\n\n    /**\n     * Indicates whether the Meter is Active\n     */\n    active: boolean | null | undefined;\n\n    /**\n     * Indicates whether the meter is a calculated meter\n     */\n    isCalculatedMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the meter is an ESA calculated meter\n     */\n    isEsaCalculatedMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the meter is a parent of a split\n     */\n    isSplitParentMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the meter is a child of a split\n     */\n    isSplitChildMeter: boolean | null | undefined;\n\n    /**\n     * The meter's current serial number\n     */\n    serialNumber: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { HierarchicalMeter } from './hierarchicalMeter';\nimport { HierarchicalPlaces2 } from './hierarchicalPlaces2';\nimport { PlaceTypeResponse } from './placeTypeResponse';\n\n\nexport class HierarchicalPlaces {\n    /**\n     * The place's parent\n     */\n    parentId: number | null | undefined;\n\n    /**\n     * The place's primary ID\n     */\n    placeId: number | null | undefined;\n\n    /**\n     * PlaceInfo\n     */\n    placeInfo: string | null | undefined;\n\n    /**\n     * PlaceCode\n     */\n    placeCode: string | null | undefined;\n\n    /**\n     * PlaceTypeID\n     */\n    placeTypeId: number | null | undefined;\n\n    /**\n     * If this place has any children, either meters or places\n     */\n    hasChildren: boolean | null | undefined;\n\n    /**\n     * If this place has any place children\n     */\n    hasPlaceChildren: boolean | null | undefined;\n\n    /**\n     * If this place has any meter children\n     */\n    hasMeterChildren: boolean | null | undefined;\n\n    /**\n     * If this place has any place children or active meter children\n     */\n    hasActiveChildren: boolean | null | undefined;\n\n    /**\n     * If this place has any active meter children\n     */\n    hasActiveMeterChildren: boolean | null | undefined;\n\n    placeType: PlaceTypeResponse | null | undefined;\n\n    /**\n     * List of meter children\n     */\n    meterChildren: Array<HierarchicalMeter> | null | undefined;\n\n    /**\n     * List of place children\n     */\n    placeChildren: Array<HierarchicalPlaces2> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { HierarchicalMeter } from './hierarchicalMeter';\nimport { HierarchicalPlaces } from './hierarchicalPlaces';\nimport { PlaceTypeResponse } from './placeTypeResponse';\n\n\nexport class HierarchicalPlaces2 {\n    /**\n     * \n     */\n    parentId: number | null | undefined;\n\n    /**\n     * \n     */\n    placeId: number | null | undefined;\n\n    /**\n     * \n     */\n    placeInfo: string | null | undefined;\n\n    /**\n     * \n     */\n    placeCode: string | null | undefined;\n\n    /**\n     * \n     */\n    placeTypeId: number | null | undefined;\n\n    /**\n     * \n     */\n    hasChildren: boolean | null | undefined;\n\n    /**\n     * \n     */\n    hasPlaceChildren: boolean | null | undefined;\n\n    /**\n     * \n     */\n    hasMeterChildren: boolean | null | undefined;\n\n    /**\n     * \n     */\n    hasActiveChildren: boolean | null | undefined;\n\n    /**\n     * \n     */\n    hasActiveMeterChildren: boolean | null | undefined;\n\n    placeType: PlaceTypeResponse | null | undefined;\n\n    /**\n     * \n     */\n    meterChildren: Array<HierarchicalMeter> | null | undefined;\n\n    /**\n     * \n     */\n    placeChildren: Array<HierarchicalPlaces> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { HierarchicalDataPoint } from './hierarchicalDataPoint';\nimport { HierarchicalSpaces2 } from './hierarchicalSpaces2';\nimport { PlaceTypeResponse } from './placeTypeResponse';\n\n\nexport class HierarchicalSpaces {\n    /**\n     * The place's parent\n     */\n    parentId: number | null | undefined;\n\n    /**\n     * The place's primary ID\n     */\n    placeId: number | null | undefined;\n\n    /**\n     * The place's Info\n     */\n    placeInfo: string | null | undefined;\n\n    /**\n     * The place's Code\n     */\n    placeCode: string | null | undefined;\n\n    placeType: PlaceTypeResponse | null | undefined;\n\n    /**\n     * If this place has any children, either datapoins or places\n     */\n    hasChildren: boolean | null | undefined;\n\n    /**\n     * If this place has any space children\n     */\n    hasSpaceChildren: boolean | null | undefined;\n\n    /**\n     * If this place has any data point children\n     */\n    hasDataPointChildren: boolean | null | undefined;\n\n    /**\n     * If this place has any active space children or active data point children\n     */\n    hasActiveChildren: boolean | null | undefined;\n\n    /**\n     * If this place has any active data point children\n     */\n    hasActiveDataPointChildren: boolean | null | undefined;\n\n    /**\n     * List of data point children\n     */\n    dataPointChildren: Array<HierarchicalDataPoint> | null | undefined;\n\n    /**\n     * List of place children\n     */\n    spaceChildren: Array<HierarchicalSpaces2> | null | undefined;\n\n    /**\n     * Tells whether or not the place's data is rolled up to its parents.\n     */\n    isDataRolledUp: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { HierarchicalDataPoint } from './hierarchicalDataPoint';\nimport { HierarchicalSpaces } from './hierarchicalSpaces';\nimport { PlaceTypeResponse } from './placeTypeResponse';\n\n\nexport class HierarchicalSpaces2 {\n    /**\n     * \n     */\n    parentId: number | null | undefined;\n\n    /**\n     * \n     */\n    placeId: number | null | undefined;\n\n    /**\n     * \n     */\n    placeInfo: string | null | undefined;\n\n    /**\n     * \n     */\n    placeCode: string | null | undefined;\n\n    placeType: PlaceTypeResponse | null | undefined;\n\n    /**\n     * \n     */\n    hasChildren: boolean | null | undefined;\n\n    /**\n     * \n     */\n    hasSpaceChildren: boolean | null | undefined;\n\n    /**\n     * \n     */\n    hasDataPointChildren: boolean | null | undefined;\n\n    /**\n     * \n     */\n    hasActiveChildren: boolean | null | undefined;\n\n    /**\n     * \n     */\n    hasActiveDataPointChildren: boolean | null | undefined;\n\n    /**\n     * \n     */\n    dataPointChildren: Array<HierarchicalDataPoint> | null | undefined;\n\n    /**\n     * \n     */\n    spaceChildren: Array<HierarchicalSpaces> | null | undefined;\n\n    /**\n     * \n     */\n    isDataRolledUp: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class HighPrecisionTimeSeriesValue {\n    /**\n     * \n     */\n    date: Date | null | undefined;\n\n    /**\n     * Value, as a decimal. Note that this could be very large, and/or to a high degree of precision. In particular, in Javascript, it might not be able to be precisely represented in a 64-bit float. See: `formattedValue`.\n     */\n    value: number | null | undefined;\n\n    /**\n     * Value, serialized as a String. This is the value that should be displayed to the User. If Value is very large or to a high degree of precision its Number value in Javascript cannot be relied upon. Other client languages might have similar limitations. In order to guarantee that Value is displayed to the User to the same degree of precision as is stored in the readings database, this `formattedValue` property must be used.\n     */\n    formattedValue: string | null | undefined;\n\n    /**\n     * The Unit that `Value` is expressed in. E.g. \\\"kWh\\\".\n     */\n    unit: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\n/**\n * Time series value DTO. Includes a `formattedValue` to overcome client Number-parsing limitations.\n */\nexport class HighPrecisionValue {\n    /**\n     * Value, as a decimal. Note that this could be very large, and/or to a high degree of precision. In particular, in Javascript, it might not be able to be precisely represented in a 64-bit float. See: `formattedValue`.\n     */\n    value: number | null | undefined;\n\n    /**\n     * Value, serialized as a String. This is the value that should be displayed to the User. If Value is very large or to a high degree of precision its Number value in Javascript cannot be relied upon. Other client languages might have similar limitations. In order to guarantee that Value is displayed to the User to the same degree of precision as is stored in the readings database, this `formattedValue` property must be used.\n     */\n    formattedValue: string | null | undefined;\n\n    /**\n     * The Unit that `Value` is expressed in. E.g. \\\"kWh\\\".\n     */\n    unit: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class IActionResult {\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { GHGFactor } from './gHGFactor';\nimport { GHGScopeCategory } from './gHGScopeCategory';\n\n\nexport class IGHGDefaultScopeCategoryAndFactor {\n    defaultScopeCategory: GHGScopeCategory | null | undefined;\n\n    defaultFactor: GHGFactor | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class IOutputFormatter {\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class Icon {\n    /**\n     * The icon code <span class='property-internal'>Must be between 0 and 64 characters</span> <span class='property-internal'>Required when Color is set</span>\n     */\n    code: string | null | undefined;\n\n    /**\n     * The icon color <span class='property-internal'>Must be between 0 and 32 characters</span> <span class='property-internal'>Required when Code is set</span>\n     */\n    color: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class IntervalData {\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class IntervalDataAnalysis {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class IntervalDataAnalysisClassPermission {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class IntervalDataClassPermission {\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class IntervalDataRollup {\n    /**\n     * \n     */\n    run: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class IntervalDataRollupClassPermission {\n    /**\n     * \n     */\n    run: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ItemRankResponse {\n    /**\n     * The item type\n     */\n    type: string | null | undefined;\n\n    /**\n     * The item identifier\n     */\n    id: number | null | undefined;\n\n    /**\n     * The item display name\n     */\n    display: string | null | undefined;\n\n    /**\n     * The item formated value\n     */\n    secondaryDisplay: string | null | undefined;\n\n    /**\n     * The item value\n     */\n    value: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { UnitChild } from './unitChild';\n\n\nexport class ItemRankWithUnitResponse {\n    valueUnit: UnitChild | null | undefined;\n\n    /**\n     * The item type\n     */\n    type: string | null | undefined;\n\n    /**\n     * The item identifier\n     */\n    id: number | null | undefined;\n\n    /**\n     * The item display name\n     */\n    display: string | null | undefined;\n\n    /**\n     * The item formated value\n     */\n    secondaryDisplay: string | null | undefined;\n\n    /**\n     * The item value\n     */\n    value: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AccountTypeChild } from './accountTypeChild';\nimport { AddressChild } from './addressChild';\nimport { JsonBillExportGeneralLedger } from './jsonBillExportGeneralLedger';\nimport { JsonBillExportLine } from './jsonBillExportLine';\nimport { JsonBillExportMeter } from './jsonBillExportMeter';\nimport { JsonBillExportVendor } from './jsonBillExportVendor';\nimport { UnitChild } from './unitChild';\n\n\nexport class JsonBillExportAccount {\n    /**\n     * \n     */\n    accountId: number | null | undefined;\n\n    /**\n     * \n     */\n    accountCode: string | null | undefined;\n\n    /**\n     * \n     */\n    accountInfo: string | null | undefined;\n\n    accountType: AccountTypeChild | null | undefined;\n\n    address: AddressChild | null | undefined;\n\n    vendor: JsonBillExportVendor | null | undefined;\n\n    /**\n     * \n     */\n    customFields: { [key: string]: string; } | null | undefined;\n\n    /**\n     * \n     */\n    meters: Array<JsonBillExportMeter> | null | undefined;\n\n    /**\n     * \n     */\n    generalLedgers: Array<JsonBillExportGeneralLedger> | null | undefined;\n\n    /**\n     * \n     */\n    lines: Array<JsonBillExportLine> | null | undefined;\n\n    /**\n     * \n     */\n    cost: number | null | undefined;\n\n    costUnit: UnitChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { JsonBillExportLine } from './jsonBillExportLine';\nimport { UnitChild } from './unitChild';\n\n\nexport class JsonBillExportGeneralLedger {\n    /**\n     * \n     */\n    generalLedgerId: number | null | undefined;\n\n    /**\n     * \n     */\n    generalLedgerCode: string | null | undefined;\n\n    /**\n     * \n     */\n    generalLedgerInfo: string | null | undefined;\n\n    /**\n     * \n     */\n    subCode01: string | null | undefined;\n\n    /**\n     * \n     */\n    subCode02: string | null | undefined;\n\n    /**\n     * \n     */\n    subCode03: string | null | undefined;\n\n    /**\n     * \n     */\n    subCode04: string | null | undefined;\n\n    /**\n     * \n     */\n    subCode05: string | null | undefined;\n\n    /**\n     * \n     */\n    subCode06: string | null | undefined;\n\n    /**\n     * \n     */\n    subCode07: string | null | undefined;\n\n    /**\n     * \n     */\n    subCode08: string | null | undefined;\n\n    /**\n     * \n     */\n    subCode09: string | null | undefined;\n\n    /**\n     * \n     */\n    subCode10: string | null | undefined;\n\n    /**\n     * \n     */\n    subCode11: string | null | undefined;\n\n    /**\n     * \n     */\n    subCode12: string | null | undefined;\n\n    /**\n     * \n     */\n    subCode13: string | null | undefined;\n\n    /**\n     * \n     */\n    subCode14: string | null | undefined;\n\n    /**\n     * \n     */\n    subCode15: string | null | undefined;\n\n    /**\n     * \n     */\n    subCode16: string | null | undefined;\n\n    /**\n     * \n     */\n    subCode17: string | null | undefined;\n\n    /**\n     * \n     */\n    subCode18: string | null | undefined;\n\n    /**\n     * \n     */\n    subCode19: string | null | undefined;\n\n    /**\n     * \n     */\n    subCode20: string | null | undefined;\n\n    /**\n     * \n     */\n    lines: Array<JsonBillExportLine> | null | undefined;\n\n    /**\n     * \n     */\n    cost: number | null | undefined;\n\n    costUnit: UnitChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { ObservationTypeChild } from './observationTypeChild';\nimport { UnitChild } from './unitChild';\n\n\nexport class JsonBillExportLine {\n    /**\n     * \n     */\n    bodyLineId: number | null | undefined;\n\n    /**\n     * \n     */\n    caption: string | null | undefined;\n\n    /**\n     * \n     */\n    value: number | null | undefined;\n\n    /**\n     * \n     */\n    valueIsInfoOnly: boolean | null | undefined;\n\n    /**\n     * \n     */\n    cost: number | null | undefined;\n\n    /**\n     * \n     */\n    costIsInfoOnly: boolean | null | undefined;\n\n    valueUnit: UnitChild | null | undefined;\n\n    costUnit: UnitChild | null | undefined;\n\n    observationType: ObservationTypeChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AddressChild } from './addressChild';\nimport { CommodityChild } from './commodityChild';\nimport { JsonBillExportGeneralLedger } from './jsonBillExportGeneralLedger';\nimport { JsonBillExportLine } from './jsonBillExportLine';\nimport { JsonBillExportPlace } from './jsonBillExportPlace';\nimport { MeterTypeChild } from './meterTypeChild';\nimport { RateChild } from './rateChild';\nimport { UnitChild } from './unitChild';\n\n\nexport class JsonBillExportMeter {\n    /**\n     * \n     */\n    meterId: number | null | undefined;\n\n    /**\n     * \n     */\n    meterCode: string | null | undefined;\n\n    /**\n     * \n     */\n    meterInfo: string | null | undefined;\n\n    meterType: MeterTypeChild | null | undefined;\n\n    address: AddressChild | null | undefined;\n\n    commodity: CommodityChild | null | undefined;\n\n    /**\n     * \n     */\n    serialNumber: string | null | undefined;\n\n    rate: RateChild | null | undefined;\n\n    place: JsonBillExportPlace | null | undefined;\n\n    /**\n     * \n     */\n    customFields: { [key: string]: string; } | null | undefined;\n\n    /**\n     * \n     */\n    generalLedgers: Array<JsonBillExportGeneralLedger> | null | undefined;\n\n    /**\n     * \n     */\n    lines: Array<JsonBillExportLine> | null | undefined;\n\n    /**\n     * \n     */\n    nativeUse: number | null | undefined;\n\n    nativeUseUnit: UnitChild | null | undefined;\n\n    /**\n     * \n     */\n    cost: number | null | undefined;\n\n    costUnit: UnitChild | null | undefined;\n\n    /**\n     * \n     */\n    nativeBilledDemand: number | null | undefined;\n\n    nativeBilledDemandUnit: UnitChild | null | undefined;\n\n    /**\n     * \n     */\n    nativeActualDemand: number | null | undefined;\n\n    nativeActualDemandUnit: UnitChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AddressChild } from './addressChild';\nimport { PlaceTypeResponse } from './placeTypeResponse';\n\n\nexport class JsonBillExportPlace {\n    /**\n     * \n     */\n    placeId: number | null | undefined;\n\n    /**\n     * \n     */\n    placeCode: string | null | undefined;\n\n    /**\n     * \n     */\n    placeInfo: string | null | undefined;\n\n    placeType: PlaceTypeResponse | null | undefined;\n\n    address: AddressChild | null | undefined;\n\n    /**\n     * \n     */\n    customFields: { [key: string]: string; } | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { BatchChild } from './batchChild';\nimport { BillReversal } from './billReversal';\nimport { CostConversion } from './costConversion';\nimport { JsonBillExportAccount } from './jsonBillExportAccount';\nimport { UserChild } from './userChild';\n\n\nexport class JsonBillExportResponse {\n    /**\n     * The bill identifier\n     */\n    billId: number | null | undefined;\n\n    /**\n     * Indicates if the bill has been voided\n     */\n    void: boolean | null | undefined;\n\n    /**\n     * Indicates if the bill is from a vendor\n     */\n    fromVendor: boolean | null | undefined;\n\n    /**\n     * The method used to create the bill Automatic, Manual, Estimated, Simulated, Accrual, or Adjustment\n     */\n    creationMethod: string | null | undefined;\n\n    /**\n     * Indicates if the bill is an accrual\n     */\n    accrual: boolean | null | undefined;\n\n    /**\n     * Indicates if the bill is a reversed accrual\n     */\n    accrualReversed: boolean | null | undefined;\n\n    batch: BatchChild | null | undefined;\n\n    /**\n     * The date the batch was closed\n     */\n    batchEndDate: Date | null | undefined;\n\n    createdBy: UserChild | null | undefined;\n\n    /**\n     * The date and time the bill was created\n     */\n    createdDate: Date | null | undefined;\n\n    modifiedBy: UserChild | null | undefined;\n\n    /**\n     * The date and time of the most recent modification\n     */\n    modifiedDate: Date | null | undefined;\n\n    /**\n     * Indicates if the bill has been approved\n     */\n    approved: boolean | null | undefined;\n\n    /**\n     * The date and time the bill was approved\n     */\n    approveDate: Date | null | undefined;\n\n    approvedBy: UserChild | null | undefined;\n\n    /**\n     * Indicates if the bill has been split\n     */\n    hasBeenSplit: boolean | null | undefined;\n\n    /**\n     * The date and time the bill was split\n     */\n    wasSplitDate: Date | null | undefined;\n\n    /**\n     * Indicates if the bill is being withheld from bill exports\n     */\n    exportHold: boolean | null | undefined;\n\n    /**\n     * Indicates if the bill has been ap exported\n     */\n    apExported: boolean | null | undefined;\n\n    /**\n     * The date and time the bill was ap exported\n     */\n    apExportDate: Date | null | undefined;\n\n    apExportedBy: UserChild | null | undefined;\n\n    /**\n     * Indicates if the bill has been gl exported\n     */\n    glExported: boolean | null | undefined;\n\n    glExportedBy: UserChild | null | undefined;\n\n    /**\n     * The date and time the bill was exported to gl\n     */\n    glExportDate: Date | null | undefined;\n\n    /**\n     * Indicates if the bill has been exported to bill payment\n     */\n    paymentExported: boolean | null | undefined;\n\n    paymentExportedBy: UserChild | null | undefined;\n\n    /**\n     * The date and time the bill was exported to bill payment\n     */\n    paymentExportDate: Date | null | undefined;\n\n    /**\n     * The method used to upload the bill to BillCAPture, if applicable\n     */\n    bcAcquisitionMethod: string | null | undefined;\n\n    /**\n     * The date and time the bill was received by BillCAPture\n     */\n    bcReceived: Date | null | undefined;\n\n    /**\n     * The date and time the bill entered processing in BillCAPture\n     */\n    bcSentToProcessing: Date | null | undefined;\n\n    /**\n     * The date and time the bill was returned from processing in BillCAPture\n     */\n    bcReturnedFromProcessing: Date | null | undefined;\n\n    /**\n     * The date and time the bill processing was completed in BillCAPture\n     */\n    bcProcessingComplete: Date | null | undefined;\n\n    /**\n     * The number of the check that the bill was paid with\n     */\n    checkNumber: string | null | undefined;\n\n    /**\n     * The date and time of the check\n     */\n    checkDate: Date | null | undefined;\n\n    /**\n     * The payment status of the bill\n     */\n    payStatus: string | null | undefined;\n\n    /**\n     * The date when funds were withdrawn\n     */\n    fundsWithdrawnDate: Date | null | undefined;\n\n    /**\n     * The date and time that the check cleared\n     */\n    clearedDate: Date | null | undefined;\n\n    /**\n     * The payment type of the bill.  For example, Check, VCard, and ACH.\n     */\n    paymentType: string | null | undefined;\n\n    /**\n     * The net amount of the payment event of the bill\n     */\n    paymentAmount: number | null | undefined;\n\n    /**\n     * The API URL that can be used to download the file of the payment voucher\n     */\n    paymentVoucher: string | null | undefined;\n\n    /**\n     * The API URL that can be used to download the file of the check image\n     */\n    checkImage: string | null | undefined;\n\n    account: JsonBillExportAccount | null | undefined;\n\n    /**\n     * The bill's begin date\n     */\n    beginDate: Date | null | undefined;\n\n    /**\n     * The bill's end date\n     */\n    endDate: Date | null | undefined;\n\n    /**\n     * The bill's billing period\n     */\n    billingPeriod: number | null | undefined;\n\n    /**\n     * The bill's number of days\n     */\n    days: number | null | undefined;\n\n    /**\n     * The bill's accounting period\n     */\n    accountPeriod: number | null | undefined;\n\n    /**\n     * The bill's accounting period name\n     */\n    accountPeriodName: string | null | undefined;\n\n    /**\n     * The bill's total cost in the system currency. The system currency is the reporting/global currency unit.\n     */\n    totalCost: number | null | undefined;\n\n    /**\n     * The bill's total cost in the source currency. The source currency is the native currency unit.\n     */\n    totalSourceCost: number | null | undefined;\n\n    costConversion: CostConversion | null | undefined;\n\n    /**\n     * The bill's balance\n     */\n    balance: number | null | undefined;\n\n    /**\n     * Indicates if the bill is estimated\n     */\n    estimated: boolean | null | undefined;\n\n    /**\n     * The date of the billing statement\n     */\n    statementDate: Date | null | undefined;\n\n    /**\n     * The date and time the bill is due\n     */\n    dueDate: Date | null | undefined;\n\n    /**\n     * The bill's invoice number\n     */\n    invoiceNumber: string | null | undefined;\n\n    /**\n     * The bill's control code\n     */\n    controlCode: string | null | undefined;\n\n    /**\n     * The fully qualified url to the bill image\n     */\n    billImageUrl: string | null | undefined;\n\n    /**\n     * Bill note\n     */\n    billNote: string | null | undefined;\n\n    /**\n     * The bill's next reading date\n     */\n    nextReading: Date | null | undefined;\n\n    reversalDetails: BillReversal | null | undefined;\n\n    /**\n     * Indicates whether this bill is excluded from accruals or not\n     */\n    excludedFromAccruals: boolean | null | undefined;\n\n    /**\n     * Indicates whether this bill is currently being analyzed\n     */\n    analyzing: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AddressChild } from './addressChild';\n\n\nexport class JsonBillExportVendor {\n    /**\n     * \n     */\n    vendorId: number | null | undefined;\n\n    /**\n     * \n     */\n    vendorCode: string | null | undefined;\n\n    /**\n     * \n     */\n    vendorInfo: string | null | undefined;\n\n    address: AddressChild | null | undefined;\n\n    /**\n     * \n     */\n    customFields: { [key: string]: string; } | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class KickoutField {\n    /**\n     * The column identifier. This is a dynamic field and may vary between requests.\n     */\n    id: number | null | undefined;\n\n    /**\n     * The column name\n     */\n    name: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class KickoutValue {\n    /**\n     * The field identifier\n     */\n    fieldId: number | null | undefined;\n\n    /**\n     * The kickout value\n     */\n    value: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { BenchmarkCategoryResponse } from './benchmarkCategoryResponse';\nimport { BenchmarkValue } from './benchmarkValue';\n\n\nexport class LatestBenchmarkValue {\n    benchmarkValue: BenchmarkValue | null | undefined;\n\n    /**\n     * Indicator for which benchmark factor\n     */\n    benchmarkIndicator: number | null | undefined;\n\n    /**\n     * benchmark info\n     */\n    benchmarkInfo: string | null | undefined;\n\n    benchmarkCategory: BenchmarkCategoryResponse | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class LicenseFeatureAccountingExport {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class LicenseFeatureAccrualBills {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class LicenseFeatureBillCAPtureManagedServices {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class LicenseFeatureBillCapturePostPay {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class LicenseFeatureBillCapturePrePay {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class LicenseFeatureBudgets {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class LicenseFeatureCarbonHub {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class LicenseFeatureChargebacks {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class LicenseFeatureCostAvoidance {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class LicenseFeatureCustomBenchmarks {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class LicenseFeatureEnergyCAPPayments {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class LicenseFeatureGhg {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class LicenseFeatureGhgPremium {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class LicenseFeatureIntervalData {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class LicenseFeatureIntervalDataAnalysis {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class LicenseFeatureLegacyGHG {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class LicenseFeatureNonEnglishBills {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class LicenseFeatureReportDesigner {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class LicenseFeatureReportDistribution {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class LicenseFeatureUIDI {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class LicenseFeatureVendorManagementServices {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class LicenseFeatures {\n    /**\n     * Whether accounting export is available on the user's the license.\n     */\n    accountingExport: boolean | null | undefined;\n\n    /**\n     * Whether bill accruals are available on the user's license.\n     */\n    billAccruals: boolean | null | undefined;\n\n    /**\n     * Whether chargebacks are available on the user's license.\n     */\n    chargebacks: boolean | null | undefined;\n\n    /**\n     * Whether cost avoidance is available on the user's license.\n     */\n    costAvoidance: boolean | null | undefined;\n\n    /**\n     * Whether custom benchmarks are available on the user's license.\n     */\n    customBenchmarks: boolean | null | undefined;\n\n    /**\n     * Whether interval data analysis is available on the user's license.\n     */\n    intervalDataAnalysis: boolean | null | undefined;\n\n    /**\n     * Whether report designer is available on the user's license.\n     */\n    reportDesigner: boolean | null | undefined;\n\n    /**\n     * Whether report distribution is available on the user's license.\n     */\n    reportDistribution: boolean | null | undefined;\n\n    /**\n     * Whether CarbonHub Standard is available on the user's license.\n     */\n    ghg: boolean | null | undefined;\n\n    /**\n     * Whether CarbonHub Premium is available on the user's license.\n     */\n    ghgPremium: boolean | null | undefined;\n\n    /**\n     * Whether Legacy GHG features are available on the user's license.\n     */\n    ghgLegacy: boolean | null | undefined;\n\n    /**\n     * Whether Budgets is available on the user's license\n     */\n    budgets: boolean | null | undefined;\n\n    /**\n     * Whether EnergyCAP Payments is available on the user's license\n     */\n    energyCAPPayments: boolean | null | undefined;\n\n    /**\n     * Whether Bill CAPture Managed Services is available on the user's license\n     */\n    billCAPtureManagedServices: boolean | null | undefined;\n\n    /**\n     * Whether CarbonHub is available on the user's license\n     */\n    carbonHub: boolean | null | undefined;\n\n    /**\n     * Whether Interval Data Managed Services is available on the user's license\n     */\n    intervalData: boolean | null | undefined;\n\n    /**\n     * Whether Bill CAPture PrePay is available on the user's license\n     */\n    billCapturePrePay: boolean | null | undefined;\n\n    /**\n     * Whether Bill CAPture PostPay is available on the user's license\n     */\n    billCapturePostPay: boolean | null | undefined;\n\n    /**\n     * Whether Bill CAPture NonEnglish Bills is available on the user's license\n     */\n    nonEnglishBills: boolean | null | undefined;\n\n    /**\n     * Whether Vendor Management Services is available on the user's license\n     */\n    vendorManagementServices: boolean | null | undefined;\n\n    /**\n     * Whether UIDI is available on the user's license\n     */\n    uIdI: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class LicenseRequest {\n    /**\n     * User's license validation key. <span class='property-internal'>Required (defined)</span>\n     */\n    validationKey: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AccountOrMeterUsage } from './accountOrMeterUsage';\nimport { BillUsage } from './billUsage';\nimport { LicenseFeatures } from './licenseFeatures';\nimport { LicenseUsage } from './licenseUsage';\n\n\nexport class LicenseResponse {\n    /**\n     * User's license validation key.\n     */\n    validationKey: string | null | undefined;\n\n    /**\n     * User's license expiration date.\n     */\n    expirationDate: Date | null | undefined;\n\n    /**\n     * Number of licensed meters for this user.\n     */\n    licensedMeters: number | null | undefined;\n\n    /**\n     * The user number.\n     */\n    userNumber: string | null | undefined;\n\n    /**\n     * EnergyCAP version on this license.\n     */\n    version: string | null | undefined;\n\n    /**\n     * Additional notes related to the license.\n     */\n    notes: string | null | undefined;\n\n    meterUsage: AccountOrMeterUsage | null | undefined;\n\n    accountUsage: AccountOrMeterUsage | null | undefined;\n\n    billsCreatedLast30Days: BillUsage | null | undefined;\n\n    billsCreatedLast12Months: BillUsage | null | undefined;\n\n    licenseFeatures: LicenseFeatures | null | undefined;\n\n    /**\n     * Application SKU as set in the license code for UtilityManagement. Possible values are: SaaS (Express), Professional, Online (Enterprise), ConsultantPlatform, ConsultantPlatformPlus, UtilityCompanyPlatform, and Other.\n     */\n    utilityManagementSKU: string | null | undefined;\n\n    emissionSourcesScope1And2Usage: LicenseUsage | null | undefined;\n\n    emissionSourcesScope3Usage: LicenseUsage | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class LicenseUsage {\n    /**\n     * Purchased allotment of licensed items\n     */\n    purchased: number | null | undefined;\n\n    /**\n     * Number of active licenses\n     */\n    active: number | null | undefined;\n\n    /**\n     * Number of inactive licenses\n     */\n    inactive: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\n/**\n * Filter to select accounts to add as sub accounts If multiple filters are provided, they are combined with AND Properties with a null value are not included when filtering\n */\nexport class LinkSubAccountsFilters {\n    /**\n     * Account info contains the specified string <span class='property-internal'>At least one of AccountInfoContains, AccountCodeContains, VendorId, TopmostCostCenterId must not be null</span>\n     */\n    accountInfoContains: string | null | undefined;\n\n    /**\n     * Account code contains the specified string <span class='property-internal'>At least one of AccountInfoContains, AccountCodeContains, VendorId, TopmostCostCenterId must not be null</span>\n     */\n    accountCodeContains: string | null | undefined;\n\n    /**\n     * All accounts with the specified vendor id <span class='property-internal'>At least one of AccountInfoContains, AccountCodeContains, VendorId, TopmostCostCenterId must not be null</span>\n     */\n    vendorId: number | null | undefined;\n\n    /**\n     * All accounts under the specified topmost cost center id <span class='property-internal'>Topmost (CostCenter)</span> <span class='property-internal'>At least one of AccountInfoContains, AccountCodeContains, VendorId, TopmostCostCenterId must not be null</span>\n     */\n    topmostCostCenterId: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { LinkSubAccountsFilters } from './linkSubAccountsFilters';\n\n\n/**\n * Sub accounts to add to a summary account Either a list of SubAccountIds or use filter to find all accounts to add\n */\nexport class LinkSubAccountsRequest {\n    /**\n     * List of AccountIds to assign as sub accounts <span class='property-internal'>Cannot be Empty</span> <span class='property-internal'>NULL Valid</span> <span class='property-internal'>Only one of SubAccountIds, LinkSubAccountsFilters can be set</span>\n     */\n    subAccountIds: Array<number> | null | undefined;\n\n    linkSubAccountsFilters: LinkSubAccountsFilters | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ListActionAccrualExclusion {\n    /**\n     * Whether or not the bill ids should be excluded from accruals, or included again <span class='property-internal'>Required</span>\n     */\n    exclude: boolean | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ListActionApprove {\n    /**\n     *  <span class='property-internal'>Required (defined)</span>\n     */\n    approve: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ListActionCustom {\n    /**\n     * The webhook identifier that represents the custom bill action <span class='property-internal'>Required</span>\n     */\n    webhookId: number | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ListActionExportHold {\n    /**\n     *  <span class='property-internal'>Required (defined)</span>\n     */\n    exportHold: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { BatchCreate } from './batchCreate';\n\n\nexport class ListActionReverse {\n    batchSettings: BatchCreate | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ListActionVoid {\n    /**\n     *  <span class='property-internal'>Required (defined)</span>\n     */\n    void: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ListColumnEdit {\n    /**\n     * Column/Filter Identifier <span class='property-internal'>Required</span>\n     */\n    fieldId: number | null ;\n\n    /**\n     * Width of the column <span class='property-internal'>Required</span>\n     */\n    width: number | null ;\n\n    /**\n     * Order of the column <span class='property-internal'>Required</span>\n     */\n    displayOrder: number | null ;\n\n    /**\n     * Sort order for the column <span class='property-internal'>Required</span>\n     */\n    sortOrder: number | null ;\n\n    /**\n     * Sort direction <span class='property-internal'>Required</span> <span class='property-internal'>One of 'asc', 'desc'</span> <span class='property-internal'>Case sensitive</span>\n     */\n    sortDirection: string | null ;\n\n    /**\n     * Is the column visible? <span class='property-internal'>Required</span>\n     */\n    visible: boolean | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ListCopy {\n    /**\n     * The list name <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 50 characters</span>\n     */\n    listInfo: string | null ;\n\n    /**\n     * The list description <span class='property-internal'>Must be between 0 and 255 characters</span>\n     */\n    listDescription: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ListCreate {\n    /**\n     * The list type (List) id <span class='property-internal'>Required</span>\n     */\n    listTypeId: number | null ;\n\n    /**\n     * The list name <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 50 characters</span>\n     */\n    listInfo: string | null ;\n\n    /**\n     * The list description <span class='property-internal'>Must be between 0 and 255 characters</span>\n     */\n    listDescription: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { ListTypeChild } from './listTypeChild';\nimport { UserChild } from './userChild';\n\n\nexport class ListCreateResponse {\n    /**\n     * The list identifier.\n     */\n    listId: number | null | undefined;\n\n    /**\n     * The list name.\n     */\n    listInfo: string | null | undefined;\n\n    /**\n     * The list description.\n     */\n    listDescription: string | null | undefined;\n\n    listType: ListTypeChild | null | undefined;\n\n    user: UserChild | null | undefined;\n\n    /**\n     * Is this a list shared with anyone?\n     */\n    sharedList: boolean | null | undefined;\n\n    /**\n     * Is this list visible to me?\n     */\n    visible: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ListEdit {\n    /**\n     * The list name <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 50 characters</span>\n     */\n    listInfo: string | null ;\n\n    /**\n     * The list description <span class='property-internal'>Must be between 0 and 255 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    listDescription: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ListIds {\n    /**\n     *  <span class='property-internal'>Required (defined)</span>\n     */\n    ids: Array<number> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { ListResponseListField } from './listResponseListField';\nimport { ListResponseListItem } from './listResponseListItem';\n\n\nexport class ListResponse {\n    /**\n     * Specific List Identifier\n     */\n    listId: number | null | undefined;\n\n    /**\n     * Data for the bill list\n     */\n    data: Array<Array<ListResponseListItem>> | null | undefined;\n\n    /**\n     * Definition of the bill list - available filters and columns\n     */\n    field: Array<ListResponseListField> | null | undefined;\n\n    /**\n     * Meta data about the list Can contain:  TotalCount - Total number of items that match the filter TotalCost - Total Cost of all the items that match the filter costUnitInfo - The currency unit ErrorMessage - Indicates data fetch error.\n     */\n    meta: { [key: string]: any; } | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ListResponseListField {\n    /**\n     * Column/Filter Identifier\n     */\n    fieldId: number | null | undefined;\n\n    /**\n     * Width of the column\n     */\n    width: number | null | undefined;\n\n    /**\n     * Order of the column\n     */\n    displayOrder: number | null | undefined;\n\n    /**\n     * Is the column sortable?\n     */\n    sortable: boolean | null | undefined;\n\n    /**\n     * Caption for the column/filter\n     */\n    caption: string | null | undefined;\n\n    /**\n     * Sort direction \\\"asc\\\" or \\\"desc\\\"\n     */\n    sortDirection: string | null | undefined;\n\n    /**\n     * Sort order for the column\n     */\n    sortOrder: number | null | undefined;\n\n    /**\n     * Type of Data in this column\n     */\n    dataTypeCode: string | null | undefined;\n\n    /**\n     * Is this column a required column?\n     */\n    requiredOutput: boolean | null | undefined;\n\n    /**\n     * Is this column currently visible?\n     */\n    visible: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ListResponseListItem {\n    fieldId: number | null | undefined;\n\n    name: string | null | undefined;\n\n    value: any | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ListTypeChild {\n    /**\n     * \n     */\n    listTypeId: number | null | undefined;\n\n    /**\n     * \n     */\n    listTypeInfo: string | null | undefined;\n\n    /**\n     * \n     */\n    listTypeDescription: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class LoginRequest {\n    /**\n     * Datasource <span class='property-internal'>Required</span>\n     */\n    dataSource: string | null ;\n\n    /**\n     * Password <span class='property-internal'>Required</span>\n     */\n    password: string | null ;\n\n    /**\n     * Username <span class='property-internal'>Required</span>\n     */\n    username: string | null ;\n\n    /**\n     * OPTIONAL - Partition Usually this is the environment, Staging, Pro, Web. An empty or NULL partition will result in all partitions being scanned.\n     */\n    partition: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { ApiUser } from './apiUser';\n\n\nexport class LoginResponse {\n    /**\n     * \n     */\n    token: string | null | undefined;\n\n    user: ApiUser | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ManualAdjustmentRequest {\n    /**\n     * The manually adjusted Baseline Adjusted to Current Conditions (BATCC) native use <span class='property-internal'>Required when locked is set to True, case sensitive.</span>\n     */\n    batccNativeUse: number | null | undefined;\n\n    /**\n     * The manually adjusted Baseline Adjusted to Current Conditions (BATCC) cost <span class='property-internal'>Required when locked is set to True, case sensitive.</span>\n     */\n    batccCost: number | null | undefined;\n\n    /**\n     * The manual adjustment note explaining the reason for the adjustment <span class='property-internal'>Required</span>\n     */\n    billMtrNote: string | null ;\n\n    /**\n     * Indicates whether or not the values in a savings record are locked (this is not changed by future runs of the savings processor) Set to true when a manual adjustment is being created. Set to false when a manual adjustment is being removed. If locked is set to false, all other values are ignored and will be set by the savings processor. <span class='property-internal'>Required</span>\n     */\n    locked: boolean | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class ManuallyAdjustSavings {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ManuallyAdjustSavingsClassPermission {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\n/**\n * \n */\nexport class ManufacturerChild {\n    /**\n     * The identifier for the manufacturer\n     */\n    manufacturerId: number | null | undefined;\n\n    /**\n     * The manufacturer name\n     */\n    manufacturerInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { FilterEdit } from './filterEdit';\n\n\nexport class MapDashboardSettingsRequest {\n    /**\n     * The title of the dashboard. <span class='property-internal'>Required</span> <span class='property-internal'>Max length of 255</span>\n     */\n    title: string | null ;\n\n    /**\n     * The description of the dashboard. <span class='property-internal'>Max length of 255</span> <span class='property-internal'>Required (defined)</span>\n     */\n    description: string | null | undefined;\n\n    /**\n     * Flag to indicate if Cost data should be shown on the dashboard. <span class='property-internal'>Required (defined)</span>\n     */\n    showCost: boolean | null | undefined;\n\n    /**\n     * Flag to indicate if Use data should be shown on the dashboard. <span class='property-internal'>Required (defined)</span>\n     */\n    showUse: boolean | null | undefined;\n\n    /**\n     * Flag to indicate if Greenhouse Gas data should be shown on the dashboard. <span class='property-internal'>Required (defined)</span>\n     */\n    showGHG: boolean | null | undefined;\n\n    /**\n     * Filters to apply to the map. <span class='property-internal'>Required (defined)</span>\n     */\n    mapDashboardFilter: Array<FilterEdit> | null | undefined;\n\n    /**\n     * Set how commodities should be ordered for each data type. Applied individually to Cost, Use, and GHG Emissions. Highest - Order displayed commodities in order of Highest Cost/Use/GHG Emissions Lowest - Order displayed commodities in order Lowest Cost/Use/GHG Emissions Fixed - Select up to 5 fixed commodities to display. <span class='property-internal'>One of 'Highest', 'Lowest', 'Fixed'</span> <span class='property-internal'>Required (defined)</span>\n     */\n    globalCommodityDisplay: string | null | undefined;\n\n    /**\n     * List of Commodities to display for each data type. Required if GlobalCommodityDisplay is Fixed, ignored otherwise. Maximum length of 5 items. <span class='property-internal'>Required when GlobalCommodityDisplay is set to Fixed</span> <span class='property-internal'>List cannot be empty</span>\n     */\n    fixedCommodityIds: Array<number> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CommodityChild } from './commodityChild';\nimport { FilterResponse } from './filterResponse';\n\n\nexport class MapDashboardSettingsResponse {\n    /**\n     * The title of the dashboard. Maximum length of 255 characters.\n     */\n    title: string | null | undefined;\n\n    /**\n     * The description of the dashboard. Maximum length of 255 characters.\n     */\n    description: string | null | undefined;\n\n    /**\n     * Flag to indicate if Cost data is shown on the dashboard.\n     */\n    showCost: boolean | null | undefined;\n\n    /**\n     * Flag to indicate if Use data is shown on the dashboard.\n     */\n    showUse: boolean | null | undefined;\n\n    /**\n     * Flag to indicate if Greenhouse Gas data is shown on the dashboard.\n     */\n    showGHG: boolean | null | undefined;\n\n    /**\n     * Filters applied to the dashboard.\n     */\n    mapDashboardFilters: Array<FilterResponse> | null | undefined;\n\n    /**\n     * Display order for commodities. Applied individually to Cost, Use, and GHG Emissions. Highest - Order displayed commodities in order of Highest Cost/Use/GHG Emissions Lowest - Order displayed commodities in order Lowest Cost/Use/GHG Emissions Fixed - Display up to 5 fixed commodities for each data type.\n     */\n    globalCommodityDisplay: string | null | undefined;\n\n    /**\n     * List of Commodities to display for Cost, Use, and GHG, if applicable. Empty if GlobalCommodityDisplay is set to \\\"Highest\\\" or \\\"Lowest\\\".\n     */\n    fixedCommodities: Array<CommodityChild> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AddressChild } from './addressChild';\nimport { PrimaryUseChild } from './primaryUseChild';\n\n\nexport class MapPlaceChild {\n    /**\n     * The identifier for place\n     */\n    placeId: number | null | undefined;\n\n    /**\n     * The place code\n     */\n    placeCode: string | null | undefined;\n\n    /**\n     * The place information\n     */\n    placeInfo: string | null | undefined;\n\n    address: AddressChild | null | undefined;\n\n    /**\n     * The floor area of the place, reported in the global area unit\n     */\n    floorArea: number | null | undefined;\n\n    primaryUse: PrimaryUseChild | null | undefined;\n\n    /**\n     * Energy Use Intensity (EUI) for the past period\n     */\n    energyUseIntensity: number | null | undefined;\n\n    /**\n     * Energy Cost Intensity (ECI) for the past period\n     */\n    energyCostIntensity: number | null | undefined;\n\n    /**\n     * Green House Gas (GHG) Intensity for the past period\n     */\n    ghgIntensity: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { MapPlaceChild } from './mapPlaceChild';\nimport { UnitChild } from './unitChild';\n\n\nexport class MapWidgetResponse {\n    /**\n     * The start period for intensity data on places\n     */\n    startPeriod: number | null | undefined;\n\n    /**\n     * The end period for intensity data on places\n     */\n    endPeriod: number | null | undefined;\n\n    energyUseIntensityUnit: UnitChild | null | undefined;\n\n    energyCostIntensityUnit: UnitChild | null | undefined;\n\n    ghgIntensityUnit: UnitChild | null | undefined;\n\n    floorAreaUnit: UnitChild | null | undefined;\n\n    /**\n     * Place data to draw on the map\n     */\n    places: Array<MapPlaceChild> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { Claim } from './claim';\nimport { EnergyCapOptionsEnergyCapIDOptions } from './energyCapOptionsEnergyCapIDOptions';\nimport { EnergyStarSettings } from './energyStarSettings';\nimport { GHGSettings } from './gHGSettings';\nimport { Permissions } from './permissions';\nimport { Preference } from './preference';\nimport { TargetSettings } from './targetSettings';\nimport { TimeFormatResponse } from './timeFormatResponse';\nimport { TopmostCollection } from './topmostCollection';\nimport { TopmostCostCenter } from './topmostCostCenter';\nimport { TopmostPlace } from './topmostPlace';\nimport { TopmostSpace } from './topmostSpace';\nimport { UnitChild } from './unitChild';\nimport { UtilityPlatform } from './utilityPlatform';\n\n\nexport class Me {\n    place: TopmostPlace | null | undefined;\n\n    costCenter: TopmostCostCenter | null | undefined;\n\n    collection: TopmostCollection | null | undefined;\n\n    space: TopmostSpace | null | undefined;\n\n    /**\n     * User's authentication token\n     */\n    token: string | null | undefined;\n\n    /**\n     * User's external user ID\n     */\n    externalUserId: string | null | undefined;\n\n    /**\n     * Username\n     */\n    systemUserCode: string | null | undefined;\n\n    /**\n     * Unique identifier for the user\n     */\n    systemUserId: number | null | undefined;\n\n    /**\n     * Owner identifier\n     */\n    ownerId: number | null | undefined;\n\n    /**\n     * User's full name\n     */\n    fullName: string | null | undefined;\n\n    /**\n     * User's email address\n     */\n    email: string | null | undefined;\n\n    /**\n     * Number of accounting periods configured for the user's owner\n     */\n    numberOfAccountingPeriods: number | null | undefined;\n\n    /**\n     * Calendarization configured for user's owner\n     */\n    calendarizationMethod: string | null | undefined;\n\n    /**\n     * Fiscal year start month configured for the user's owner\n     */\n    fiscalYearStartMonth: number | null | undefined;\n\n    /**\n     * Method configured for identification of fiscal year for the user's owner\n     */\n    fiscalYearMethod: string | null | undefined;\n\n    /**\n     * List of the user's claims\n     */\n    claim: Array<Claim> | null | undefined;\n\n    preference: Preference | null | undefined;\n\n    /**\n     * Available date formats\n     */\n    dateFormats: Array<string> | null | undefined;\n\n    /**\n     * Available time formats\n     */\n    timeFormats: Array<TimeFormatResponse> | null | undefined;\n\n    currencyUnit: UnitChild | null | undefined;\n\n    /**\n     * Current account period calculated from configuration for the user's owner\n     */\n    currentAccountingPeriod: number | null | undefined;\n\n    /**\n     * User's user role\n     */\n    userRoleName: string | null | undefined;\n\n    permissions: Permissions | null | undefined;\n\n    /**\n     * List of enabled feature flags\n     */\n    featureFlags: Array<string> | null | undefined;\n\n    /**\n     * Upgrade version number (Version 3)\n     */\n    upgradeVersionV3: string | null | undefined;\n\n    /**\n     * Upgrade version number (Version 7)\n     */\n    upgradeVersionV7: string | null | undefined;\n\n    /**\n     * Application SKU as set in the license code Possible values are: SaaS (Express), Professional, Online (Enterprise), ConsultantPlatform, ConsultantPlatformPlus, UtilityCompanyPlatform, and Other.\n     */\n    sku: string | null | undefined;\n\n    /**\n     * Current environment\n     */\n    environment: string | null | undefined;\n\n    /**\n     * Build date for the current application version\n     */\n    buildDate: Date | null | undefined;\n\n    /**\n     * The email address to use as the sender for report distribution\n     */\n    reportDistributionFromEmailAddress: string | null | undefined;\n\n    /**\n     * The email name to use as the sender for report distribution\n     */\n    reportDistributionFromEmailName: string | null | undefined;\n\n    /**\n     * The current mode of the application Values: Online, Offline\n     */\n    applicationMode: string | null | undefined;\n\n    /**\n     * The current version of the database\n     */\n    currentDatabaseVersion: number | null | undefined;\n\n    utilityPlatformSettings: UtilityPlatform | null | undefined;\n\n    /**\n     * Node where unplaced meters are assigned\n     */\n    unplacedMetersParentId: number | null | undefined;\n\n    /**\n     * Node where unplaced accounts are assigned\n     */\n    unplacedAccountsParentId: number | null | undefined;\n\n    /**\n     * Node where unplaced emmission sources are assigned\n     */\n    unplacedEmissionSourcesParentId: number | null | undefined;\n\n    /**\n     * Node where unplaced data points are assigned\n     */\n    unplacedDataPointsParentId: number | null | undefined;\n\n    floorAreaUnit: UnitChild | null | undefined;\n\n    /**\n     * Alternate URL to use as a Support link\n     */\n    supportUrl: string | null | undefined;\n\n    ghgSettings: GHGSettings | null | undefined;\n\n    targetSettings: TargetSettings | null | undefined;\n\n    /**\n     * Months to exclude by default in charts\n     */\n    chartMonthsToExclude: number | null | undefined;\n\n    energyCapIdSettings: EnergyCapOptionsEnergyCapIDOptions | null | undefined;\n\n    energyStarSettings: EnergyStarSettings | null | undefined;\n\n    /**\n     * Owner’s external Identifier\n     */\n    externalOwnerId: string | null | undefined;\n\n    /**\n     * Indicates whether the user is in a production environment\n     */\n    isProduction: boolean | null | undefined;\n\n    /**\n     * Indicates which approach is used for bill image URL 0 indicates owner is set to use bill image name, 1 indicates use control code of the bill, 2 indicates use batch code.\n     */\n    webBillImageUseControlCode: Me.WebBillImageUseControlCodeEnum;\n\n    /**\n     * Indicates which extension should be used for bill images.\n     */\n    webBillImageExt: string | null | undefined;\n\n    /**\n     * Base URL used for bill images.\n     */\n    webBillImageUrl: string | null | undefined;\n\n    /**\n     * Cut over date when EnergyCAP officially takes over bill payments\n     */\n    billPayCutoverBillEndDate: Date | null | undefined;\n\n    /**\n     * Unique identifier for special permissions for ENC Staff\n     */\n    specialPermissionId: number | null | undefined;\n\n}\nexport namespace Me {\n    export enum WebBillImageUseControlCodeEnum {\n        NUMBER_0 = <any> 0,\n        NUMBER_1 = <any> 1,\n        NUMBER_2 = <any> 2\n    }\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PreferenceRequest } from './preferenceRequest';\n\n\nexport class MeRequest {\n    preference: PreferenceRequest | null | undefined;\n\n    /**\n     * User's full name <span class='property-internal'>Max length of 32</span> <span class='property-internal'>Required (defined)</span>\n     */\n    fullName: string | null | undefined;\n\n    /**\n     * User's email address <span class='property-internal'>Max length of 128</span> <span class='property-internal'>Required (defined)</span>\n     */\n    email: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\n/**\n * This class represents a message from the savings processor\n */\nexport class Message {\n    /**\n     * Cost Avoidance message type\n     */\n    messageType: string | null | undefined;\n\n    /**\n     * Cost Avoidance message\n     */\n    message: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { GeneralLedgerChild } from './generalLedgerChild';\nimport { VendorChild } from './vendorChild';\nimport { VendorTypeChild } from './vendorTypeChild';\n\n\nexport class MeterAccountChild {\n    /**\n     * The MeterAccount meter identifier\n     */\n    accountMeterId: number | null | undefined;\n\n    /**\n     * The MeterAccount identifier for this MeterAccount meter\n     */\n    accountId: number | null | undefined;\n\n    /**\n     * The code of the MeterAccount for this MeterAccount meter\n     */\n    accountCode: string | null | undefined;\n\n    /**\n     * The info of the MeterAccount for this MeterAccount meter\n     */\n    accountInfo: string | null | undefined;\n\n    /**\n     * Indicates whether the Account is active or inactive\n     */\n    active: boolean | null | undefined;\n\n    /**\n     * Indicates whether the Account has a child calculated meter\n     */\n    hasCalculatedMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the Account is a recipient of a split\n     */\n    hasSplitParentMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the Account has a child split meter\n     */\n    hasSplitChildMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the Account has a sub-account\n     */\n    hasSubAccount: boolean | null | undefined;\n\n    /**\n     * Indicates whether the Account is a sub-account\n     */\n    isSubAccount: boolean | null | undefined;\n\n    vendor: VendorChild | null | undefined;\n\n    meterGeneralLedger: GeneralLedgerChild | null | undefined;\n\n    accountGeneralLedger: GeneralLedgerChild | null | undefined;\n\n    vendorType: VendorTypeChild | null | undefined;\n\n    /**\n     * The beginning date and time for this MeterAccount meter relationship\n     */\n    startDate: Date | null | undefined;\n\n    /**\n     * The ending date and time for this MeterAccount meter relationship\n     */\n    endDate: Date | null | undefined;\n\n    /**\n     * The data access release identifier for this MeterAccount meter relationship, null if there is no release\n     */\n    dataAccessReleaseId: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class MeterActionCreateEmissionSource {\n    /**\n     *  <span class='property-internal'>Cannot be Empty</span>\n     */\n    ids: Array<number> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AccountChild } from './accountChild';\nimport { BatchChild } from './batchChild';\nimport { ObservationMethodChild } from './observationMethodChild';\nimport { UnitChild } from './unitChild';\nimport { UserChild } from './userChild';\n\n\nexport class MeterBillResponse {\n    /**\n     * The bill identifier\n     */\n    billId: number | null | undefined;\n\n    batch: BatchChild | null | undefined;\n\n    account: AccountChild | null | undefined;\n\n    /**\n     * The bill's begin date\n     */\n    beginDate: Date | null | undefined;\n\n    /**\n     * The bill's end date\n     */\n    endDate: Date | null | undefined;\n\n    /**\n     * The bill's billing period\n     */\n    billingPeriod: number | null | undefined;\n\n    /**\n     * The bill's accounting period\n     */\n    accountPeriod: number | null | undefined;\n\n    /**\n     * The meter's bill cost\n     */\n    cost: number | null | undefined;\n\n    /**\n     * The meter's bill cost per date\n     */\n    costPerDay: number | null | undefined;\n\n    /**\n     * The meter's bill cost per unit\n     */\n    costPerUnit: number | null | undefined;\n\n    /**\n     * Indicates if the bill is estimated\n     */\n    estimated: boolean | null | undefined;\n\n    /**\n     * Indicates if the bill has been approved\n     */\n    approved: boolean | null | undefined;\n\n    /**\n     * The date and time the bill was approved\n     */\n    approveDate: Date | null | undefined;\n\n    approvedBy: UserChild | null | undefined;\n\n    /**\n     * Indicates if the bill has been exported\n     */\n    exported: boolean | null | undefined;\n\n    /**\n     * The date and time the bill was exported\n     */\n    exportDate: Date | null | undefined;\n\n    exportedBy: UserChild | null | undefined;\n\n    observationMethod: ObservationMethodChild | null | undefined;\n\n    /**\n     * The date and time of the bill statement\n     */\n    statementDate: Date | null | undefined;\n\n    /**\n     * The date and time the bill is due\n     */\n    dueDate: Date | null | undefined;\n\n    /**\n     * The date and time of the next reading\n     */\n    nextReading: Date | null | undefined;\n\n    /**\n     * The bill's control code\n     */\n    controlCode: string | null | undefined;\n\n    /**\n     * The bill's invoice number\n     */\n    invoiceNumber: string | null | undefined;\n\n    /**\n     * The number of pages on the invoice\n     */\n    invoicePages: number | null | undefined;\n\n    /**\n     * The check number\n     */\n    checkNumber: string | null | undefined;\n\n    /**\n     * The date and time of the check\n     */\n    checkDate: Date | null | undefined;\n\n    /**\n     * The pay status of the bill\n     */\n    payStatus: string | null | undefined;\n\n    /**\n     * The cleared date\n     */\n    clearedDate: Date | null | undefined;\n\n    createdBy: UserChild | null | undefined;\n\n    /**\n     * The date and time the bill was created\n     */\n    createdDate: Date | null | undefined;\n\n    modifiedBy: UserChild | null | undefined;\n\n    /**\n     * The date and time of the most recent modification\n     */\n    modifiedDate: Date | null | undefined;\n\n    /**\n     * Indicates if the bill has been voided\n     */\n    void: boolean | null | undefined;\n\n    /**\n     * Indicates if the bill record has been cleaned. Cleaning is an internal EnergyCAP process\n     */\n    dirty: boolean | null | undefined;\n\n    /**\n     * Indicates if the import has been verified\n     */\n    importVerified: boolean | null | undefined;\n\n    /**\n     * Indicates if the bill is an accrual\n     */\n    accrual: boolean | null | undefined;\n\n    /**\n     * Indicates if the bill is a reversed accrual\n     */\n    accrualReversed: boolean | null | undefined;\n\n    /**\n     * The date and time the accrual was reversed\n     */\n    accrualReversedDate: Date | null | undefined;\n\n    /**\n     * Indicates if the bill is held for export\n     */\n    exportHold: boolean | null | undefined;\n\n    /**\n     * Indicates if the bill has been gl exported\n     */\n    glExported: boolean | null | undefined;\n\n    glExportedBy: UserChild | null | undefined;\n\n    /**\n     * The date and time the bill was exported to gl\n     */\n    glExportDate: Date | null | undefined;\n\n    /**\n     * Indicates if the bill has been bill payment exported\n     */\n    paymentExported: boolean | null | undefined;\n\n    paymentExportedBy: UserChild | null | undefined;\n\n    /**\n     * The date and time the bill was exported to bill payment\n     */\n    paymentExportDate: Date | null | undefined;\n\n    /**\n     * Indicates if the bill is from a vendor\n     */\n    fromVendor: boolean | null | undefined;\n\n    /**\n     * Indicates if the bill has been split\n     */\n    hasBeenSplit: boolean | null | undefined;\n\n    /**\n     * The date and time the bill was split\n     */\n    wasSplitDate: Date | null | undefined;\n\n    /**\n     * The transaction reference number of the bill\n     */\n    transRefNum: string | null | undefined;\n\n    /**\n     * The payment type of the bill\n     */\n    paymentType: string | null | undefined;\n\n    /**\n     * The actual amount paid\n     */\n    actualAmountPaid: number | null | undefined;\n\n    assignedTo: UserChild | null | undefined;\n\n    /**\n     * The date and time the bill was assigned to a user\n     */\n    assignedDate: Date | null | undefined;\n\n    /**\n     * The bill's pay source\n     */\n    paySource: string | null | undefined;\n\n    /**\n     * Indicates whom the bill paid\n     */\n    payTo: string | null | undefined;\n\n    /**\n     * The balance of the previous bill\n     */\n    previousBalance: number | null | undefined;\n\n    /**\n     * The amount of balance that was forwarded\n     */\n    balanceForward: number | null | undefined;\n\n    /**\n     * The current charges\n     */\n    currentCharges: number | null | undefined;\n\n    /**\n     * The meter's usage\n     */\n    usage: number | null | undefined;\n\n    /**\n     * The meter's usage per day\n     */\n    usePerDay: number | null | undefined;\n\n    useUnit: UnitChild | null | undefined;\n\n    /**\n     * The meter's actual demand\n     */\n    actualDemand: number | null | undefined;\n\n    actualDemandUnit: UnitChild | null | undefined;\n\n    /**\n     * The meter's billed demand\n     */\n    billedDemand: number | null | undefined;\n\n    billedDemandUnit: UnitChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class MeterCAPResponse {\n    /**\n     * The meter's baseline start date\n     */\n    baseStart: Date | null | undefined;\n\n    /**\n     * The meter's savings start date\n     */\n    savingStart: Date | null | undefined;\n\n    /**\n     * Indicates if the meter is included or not included in cost avoidance calculations\n     */\n    includeInCAP: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { UnitChild } from './unitChild';\n\n\nexport class MeterCalendarizedUseVsWeatherResponse {\n    /**\n     * The year\n     */\n    year: number | null | undefined;\n\n    /**\n     * Is heating weather sensitive?\n     */\n    isHeatingWeatherSensitive: boolean | null | undefined;\n\n    /**\n     * Heating needed below this temperature\n     */\n    winterBalancePoint: number | null | undefined;\n\n    /**\n     * The total base heating use per day\n     */\n    heatingBaseUsePerDay: number | null | undefined;\n\n    /**\n     * The heating weather factor\n     */\n    heatingWeatherFactor: number | null | undefined;\n\n    /**\n     * Is cooling weather sensitive?\n     */\n    isCoolingWeatherSensitive: boolean | null | undefined;\n\n    /**\n     * Cooling needed above this temperature\n     */\n    summerBalancePoint: number | null | undefined;\n\n    /**\n     * The total base cooling use per day\n     */\n    coolingBaseUsePerDay: number | null | undefined;\n\n    /**\n     * The cooling weather factor\n     */\n    coolingWeatherFactor: number | null | undefined;\n\n    useUnit: UnitChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class MeterCategoryRequest {\n    /**\n     * The meter category code <span class='property-internal'>Must be between 0 and 32 characters</span> <span class='property-internal'>Required</span>\n     */\n    meterGroupCategoryCode: string | null ;\n\n    /**\n     * The meter category info <span class='property-internal'>Must be between 0 and 32 characters</span> <span class='property-internal'>Required</span>\n     */\n    meterGroupCategoryInfo: string | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class MeterCategoryResponse {\n    /**\n     * The meter category identifier\n     */\n    meterGroupCategoryId: number | null | undefined;\n\n    /**\n     * The meter category code\n     */\n    meterGroupCategoryCode: string | null | undefined;\n\n    /**\n     * The meter category name\n     */\n    meterGroupCategoryInfo: string | null | undefined;\n\n    /**\n     * Is this category an automatically maintained one?\n     */\n    autoGroup: boolean | null | undefined;\n\n    /**\n     * Number of groups within this category\n     */\n    numberOfGroups: number | null | undefined;\n\n    /**\n     * Number of groups within this category with members the logged in can see\n     */\n    numberOfGroupsWithVisibleMembers: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CommodityChild } from './commodityChild';\nimport { MeterTypeChild } from './meterTypeChild';\n\n\nexport class MeterChild {\n    /**\n     * The meter identifier\n     */\n    meterId: number | null | undefined;\n\n    /**\n     * The meter code\n     */\n    meterCode: string | null | undefined;\n\n    /**\n     * The meter info\n     */\n    meterInfo: string | null | undefined;\n\n    meterType: MeterTypeChild | null | undefined;\n\n    commodity: CommodityChild | null | undefined;\n\n    /**\n     * Indicates whether the Meter is Active\n     */\n    active: boolean | null | undefined;\n\n    /**\n     * Indicates whether the meter is a calculated meter\n     */\n    isCalculatedMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the meter is an ESA calculated meter\n     */\n    isEsaCalculatedMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the meter is a parent of a split\n     */\n    isSplitParentMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the meter is a child of a split\n     */\n    isSplitChildMeter: boolean | null | undefined;\n\n    /**\n     * The meter's current serial number\n     */\n    serialNumber: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CommodityChild } from './commodityChild';\nimport { MeterTypeChild } from './meterTypeChild';\nimport { RouteChild } from './routeChild';\n\n\n/**\n * Class derived from MeterChildDTO - has this meter's import id and route information    ///\n */\nexport class MeterChildIncludeMeterImportIdAndRoute {\n    /**\n     * Meter's import id\n     */\n    meterImportId: string | null | undefined;\n\n    route: RouteChild | null | undefined;\n\n    /**\n     * The meter identifier\n     */\n    meterId: number | null | undefined;\n\n    /**\n     * The meter code\n     */\n    meterCode: string | null | undefined;\n\n    /**\n     * The meter info\n     */\n    meterInfo: string | null | undefined;\n\n    meterType: MeterTypeChild | null | undefined;\n\n    commodity: CommodityChild | null | undefined;\n\n    /**\n     * Indicates whether the Meter is Active\n     */\n    active: boolean | null | undefined;\n\n    /**\n     * Indicates whether the meter is a calculated meter\n     */\n    isCalculatedMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the meter is an ESA calculated meter\n     */\n    isEsaCalculatedMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the meter is a parent of a split\n     */\n    isSplitParentMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the meter is a child of a split\n     */\n    isSplitChildMeter: boolean | null | undefined;\n\n    /**\n     * The meter's current serial number\n     */\n    serialNumber: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CommodityChild } from './commodityChild';\nimport { MeterTypeChild } from './meterTypeChild';\nimport { PlaceChild } from './placeChild';\n\n\n/**\n * Class derived from MeterChildDTO - has this meter's parent place information      ///\n */\nexport class MeterChildIncludePlace {\n    parentPlace: PlaceChild | null | undefined;\n\n    /**\n     * The meter identifier\n     */\n    meterId: number | null | undefined;\n\n    /**\n     * The meter code\n     */\n    meterCode: string | null | undefined;\n\n    /**\n     * The meter info\n     */\n    meterInfo: string | null | undefined;\n\n    meterType: MeterTypeChild | null | undefined;\n\n    commodity: CommodityChild | null | undefined;\n\n    /**\n     * Indicates whether the Meter is Active\n     */\n    active: boolean | null | undefined;\n\n    /**\n     * Indicates whether the meter is a calculated meter\n     */\n    isCalculatedMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the meter is an ESA calculated meter\n     */\n    isEsaCalculatedMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the meter is a parent of a split\n     */\n    isSplitParentMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the meter is a child of a split\n     */\n    isSplitChildMeter: boolean | null | undefined;\n\n    /**\n     * The meter's current serial number\n     */\n    serialNumber: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CommodityChild } from './commodityChild';\nimport { MeterTypeChild } from './meterTypeChild';\nimport { PlaceChild } from './placeChild';\n\n\n/**\n * Class derived from MeterChildIncludePlaceDTO - has this meter's serial number     ///\n */\nexport class MeterChildIncludePlaceAndSerialNumber {\n    parentPlace: PlaceChild | null | undefined;\n\n    /**\n     * The meter identifier\n     */\n    meterId: number | null | undefined;\n\n    /**\n     * The meter code\n     */\n    meterCode: string | null | undefined;\n\n    /**\n     * The meter info\n     */\n    meterInfo: string | null | undefined;\n\n    meterType: MeterTypeChild | null | undefined;\n\n    commodity: CommodityChild | null | undefined;\n\n    /**\n     * Indicates whether the Meter is Active\n     */\n    active: boolean | null | undefined;\n\n    /**\n     * Indicates whether the meter is a calculated meter\n     */\n    isCalculatedMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the meter is an ESA calculated meter\n     */\n    isEsaCalculatedMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the meter is a parent of a split\n     */\n    isSplitParentMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the meter is a child of a split\n     */\n    isSplitChildMeter: boolean | null | undefined;\n\n    /**\n     * The meter's current serial number\n     */\n    serialNumber: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { ChannelLatestReading } from './channelLatestReading';\nimport { CommodityChild } from './commodityChild';\nimport { MeterTypeChild } from './meterTypeChild';\nimport { PlaceChild } from './placeChild';\n\n\n/**\n * Class derived from MeterChildIncludePlaceDTO - has this meter's channels with latest reading  ///\n */\nexport class MeterChildIncludePlaceChannelLatestReading {\n    /**\n     * List of channels with their latest reading\n     */\n    channels: Array<ChannelLatestReading> | null | undefined;\n\n    parentPlace: PlaceChild | null | undefined;\n\n    /**\n     * The meter identifier\n     */\n    meterId: number | null | undefined;\n\n    /**\n     * The meter code\n     */\n    meterCode: string | null | undefined;\n\n    /**\n     * The meter info\n     */\n    meterInfo: string | null | undefined;\n\n    meterType: MeterTypeChild | null | undefined;\n\n    commodity: CommodityChild | null | undefined;\n\n    /**\n     * Indicates whether the Meter is Active\n     */\n    active: boolean | null | undefined;\n\n    /**\n     * Indicates whether the meter is a calculated meter\n     */\n    isCalculatedMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the meter is an ESA calculated meter\n     */\n    isEsaCalculatedMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the meter is a parent of a split\n     */\n    isSplitParentMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the meter is a child of a split\n     */\n    isSplitChildMeter: boolean | null | undefined;\n\n    /**\n     * The meter's current serial number\n     */\n    serialNumber: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AddressChild } from './addressChild';\nimport { CommodityChild } from './commodityChild';\nimport { MeterTypeChild } from './meterTypeChild';\n\n\n/**\n * Class derived from MeterChildDTO - has Meter Address and Serial Number  This class is used by the Bill Entry Account Searcher\n */\nexport class MeterChildSearch {\n    meterAddress: AddressChild | null | undefined;\n\n    /**\n     * The meter's previous serial number\n     */\n    previousSerialNumber: string | null | undefined;\n\n    /**\n     * The meter identifier\n     */\n    meterId: number | null | undefined;\n\n    /**\n     * The meter code\n     */\n    meterCode: string | null | undefined;\n\n    /**\n     * The meter info\n     */\n    meterInfo: string | null | undefined;\n\n    meterType: MeterTypeChild | null | undefined;\n\n    commodity: CommodityChild | null | undefined;\n\n    /**\n     * Indicates whether the Meter is Active\n     */\n    active: boolean | null | undefined;\n\n    /**\n     * Indicates whether the meter is a calculated meter\n     */\n    isCalculatedMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the meter is an ESA calculated meter\n     */\n    isEsaCalculatedMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the meter is a parent of a split\n     */\n    isSplitParentMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the meter is a child of a split\n     */\n    isSplitChildMeter: boolean | null | undefined;\n\n    /**\n     * The meter's current serial number\n     */\n    serialNumber: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { MeterChild } from './meterChild';\nimport { PlaceChild } from './placeChild';\nimport { UnitChild } from './unitChild';\n\n\nexport class MeterCost {\n    meter: MeterChild | null | undefined;\n\n    place: PlaceChild | null | undefined;\n\n    /**\n     * Total cost\n     */\n    totalCost: number | null | undefined;\n\n    costUnit: UnitChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { RequiredAddressChild } from './requiredAddressChild';\n\n\nexport class MeterCreate {\n    /**\n     * The meter code <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 32 characters</span>\n     */\n    meterCode: string | null ;\n\n    /**\n     * The meter info <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 50 characters</span>\n     */\n    meterInfo: string | null ;\n\n    /**\n     * The identifier for the meter's commodity <span class='property-internal'>Required</span>\n     */\n    commodityId: number | null ;\n\n    /**\n     * The identifier for the place the meter is assigned to <span class='property-internal'>Topmost (Place)</span> <span class='property-internal'>Required</span>\n     */\n    placeId: number | null ;\n\n    address: RequiredAddressChild | null ;\n\n    /**\n     * The bill entry note <span class='property-internal'>Must be between 0 and 64 characters</span>\n     */\n    billEntryNote: string | null | undefined;\n\n    /**\n     * DEPRECATED To be included in ENERGY STAR a meter needs to be linked to a meter in Portfolio Manager This can be done with the PUT place/{placeId}/energyStar/link or the ENERGY STAR: Mappings Setup Sheet\n     */\n    includeInEnergyStar: boolean | null | undefined;\n\n    /**\n     * An array of meter properties\n     */\n    properties: { [key: string]: string; } | null | undefined;\n\n    /**\n     * The identifier for the meter's primary use\n     */\n    primaryUseId: number | null | undefined;\n\n    /**\n     * The identifier for the meter type. Allowed values include: 1 (standard meter) and 6 (chargeback meter) <span class='property-internal'>Required</span>\n     */\n    meterTypeId: number | null ;\n\n    /**\n     * The identifier for the meter's time zone. If one is not specified, the global default meter time zone will be used.\n     */\n    meterTimeZoneId: number | null | undefined;\n\n    /**\n     * The use unit ID is the reporting unit for use for this meter.  It is used to determine initial bill format for this meter. If not provided defaults to the common unit for the meter commodity\n     */\n    useUnitId: number | null | undefined;\n\n    /**\n     * The demand unit ID is the reporting unit for demand for this meter.  It is used to determine initial bill format for this meter.\n     */\n    demandUnitId: number | null | undefined;\n\n    /**\n     * A description of the meter <span class='property-internal'>Must be between 0 and 4000 characters</span>\n     */\n    meterDescription: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { MeterDigestActualAndCalendarizedMonthlyResponseResults } from './meterDigestActualAndCalendarizedMonthlyResponseResults';\nimport { UnitChild } from './unitChild';\n\n\nexport class MeterDigestActualAndCalendarizedMonthlyResponse {\n    /**\n     * The meter code\n     */\n    meterCode: string | null | undefined;\n\n    /**\n     * The meter info\n     */\n    meterInfo: string | null | undefined;\n\n    /**\n     * The meter identifier\n     */\n    meterId: number | null | undefined;\n\n    /**\n     * The date and time the data was updated\n     */\n    updated: Date | null | undefined;\n\n    nativeUseUnit: UnitChild | null | undefined;\n\n    nativeDemandUnit: UnitChild | null | undefined;\n\n    commonUseUnit: UnitChild | null | undefined;\n\n    costUnit: UnitChild | null | undefined;\n\n    /**\n     * An array of monthly data\n     */\n    results: Array<MeterDigestActualAndCalendarizedMonthlyResponseResults> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class MeterDigestActualAndCalendarizedMonthlyResponseResults {\n    /**\n     * Calendar Period Name\n     */\n    periodName: string | null | undefined;\n\n    /**\n     * Calendar Period\n     */\n    calendarPeriod: number | null | undefined;\n\n    /**\n     * Calendar Year\n     */\n    calendarYear: number | null | undefined;\n\n    /**\n     * Fiscal Period\n     */\n    fiscalPeriod: number | null | undefined;\n\n    /**\n     * Fiscal Year\n     */\n    fiscalYear: number | null | undefined;\n\n    /**\n     * The number of days in the period\n     */\n    days: number | null | undefined;\n\n    /**\n     * Total Cost\n     */\n    totalCost: number | null | undefined;\n\n    /**\n     * Native Use\n     */\n    nativeUse: number | null | undefined;\n\n    /**\n     * Native Unit Cost\n     */\n    nativeUseUnitCost: number | null | undefined;\n\n    /**\n     * Common Use\n     */\n    commonUse: number | null | undefined;\n\n    /**\n     * Common Use Unit Cost\n     */\n    commonUseUnitCost: number | null | undefined;\n\n    /**\n     * Native Actual Demand\n     */\n    nativeActualDemand: number | null | undefined;\n\n    /**\n     * Native Actual Demand Unit Cost\n     */\n    nativeActualDemandUnitCost: number | null | undefined;\n\n    /**\n     * Native Billed Demand\n     */\n    nativeBilledDemand: number | null | undefined;\n\n    /**\n     * Native Billed Demand Unit Cost\n     */\n    nativeBilledDemandUnitCost: number | null | undefined;\n\n    /**\n     * Load Factor\n     */\n    loadFactor: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { MeterDigestActualAndCalendarizedYearlyResponseResults } from './meterDigestActualAndCalendarizedYearlyResponseResults';\nimport { UnitChild } from './unitChild';\n\n\nexport class MeterDigestActualAndCalendarizedYearlyResponse {\n    /**\n     * The meter code\n     */\n    meterCode: string | null | undefined;\n\n    /**\n     * The meter info\n     */\n    meterInfo: string | null | undefined;\n\n    /**\n     * The meter identifier\n     */\n    meterId: number | null | undefined;\n\n    nativeUseUnit: UnitChild | null | undefined;\n\n    nativeDemandUnit: UnitChild | null | undefined;\n\n    commonUseUnit: UnitChild | null | undefined;\n\n    costUnit: UnitChild | null | undefined;\n\n    /**\n     * The date and time the data was updated\n     */\n    updated: Date | null | undefined;\n\n    /**\n     * An array of yearly data\n     */\n    results: Array<MeterDigestActualAndCalendarizedYearlyResponseResults> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class MeterDigestActualAndCalendarizedYearlyResponseResults {\n    /**\n     * Year\n     */\n    year: string | null | undefined;\n\n    /**\n     * Total Cost\n     */\n    totalCost: number | null | undefined;\n\n    /**\n     * Native Use\n     */\n    nativeUse: number | null | undefined;\n\n    /**\n     * Native Use Unit Cost\n     */\n    nativeUseUnitCost: number | null | undefined;\n\n    /**\n     * Common Use\n     */\n    commonUse: number | null | undefined;\n\n    /**\n     * Common Use Unit Cost\n     */\n    commonUseUnitCost: number | null | undefined;\n\n    /**\n     * Native Demand\n     */\n    nativeDemand: number | null | undefined;\n\n    /**\n     * Native Demand Unit Cost\n     */\n    nativeDemandUnitCost: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { MeterDigestCalendarizedTrendResponseResults } from './meterDigestCalendarizedTrendResponseResults';\nimport { UnitChild } from './unitChild';\n\n\nexport class MeterDigestCalendarizedTrendResponse {\n    /**\n     * The meter code\n     */\n    meterCode: string | null | undefined;\n\n    /**\n     * The meter info\n     */\n    meterInfo: string | null | undefined;\n\n    /**\n     * The meter identifier\n     */\n    meterId: number | null | undefined;\n\n    /**\n     * The date and time the data was updated\n     */\n    updated: Date | null | undefined;\n\n    nativeUseUnit: UnitChild | null | undefined;\n\n    nativeDemandUnit: UnitChild | null | undefined;\n\n    commonUseUnit: UnitChild | null | undefined;\n\n    costUnit: UnitChild | null | undefined;\n\n    /**\n     * An array of monthly data\n     */\n    results: Array<MeterDigestCalendarizedTrendResponseResults> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class MeterDigestCalendarizedTrendResponseResults {\n    /**\n     * Calendar Period Name\n     */\n    periodName: string | null | undefined;\n\n    /**\n     * Calendar Period\n     */\n    calendarPeriod: number | null | undefined;\n\n    /**\n     * Calendar Year\n     */\n    calendarYear: number | null | undefined;\n\n    /**\n     * Fiscal Period\n     */\n    fiscalPeriod: number | null | undefined;\n\n    /**\n     * Fiscal Year\n     */\n    fiscalYear: number | null | undefined;\n\n    /**\n     * The number of days in the period\n     */\n    days: number | null | undefined;\n\n    /**\n     * Total Cost\n     */\n    totalCost: number | null | undefined;\n\n    /**\n     * Native Use\n     */\n    nativeUse: number | null | undefined;\n\n    /**\n     * Native Unit Cost\n     */\n    nativeUseUnitCost: number | null | undefined;\n\n    /**\n     * Common Use\n     */\n    commonUse: number | null | undefined;\n\n    /**\n     * Common Use Unit Cost\n     */\n    commonUseUnitCost: number | null | undefined;\n\n    /**\n     * Native Actual Demand\n     */\n    nativeActualDemand: number | null | undefined;\n\n    /**\n     * Native Actual Demand Unit Cost\n     */\n    nativeActualDemandUnitCost: number | null | undefined;\n\n    /**\n     * Native Billed Demand\n     */\n    nativeBilledDemand: number | null | undefined;\n\n    /**\n     * Native Billed Demand Unit Cost\n     */\n    nativeBilledDemandUnitCost: number | null | undefined;\n\n    /**\n     * Load Factor\n     */\n    loadFactor: number | null | undefined;\n\n    /**\n     * Average Daily Temperature\n     */\n    averageDailyTemperature: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { MeterDigestNormalizedMonthlyResponseResults } from './meterDigestNormalizedMonthlyResponseResults';\nimport { UnitChild } from './unitChild';\n\n\nexport class MeterDigestNormalizedMonthlyResponse {\n    /**\n     * The meter code\n     */\n    meterCode: string | null | undefined;\n\n    /**\n     * The meter info\n     */\n    meterInfo: string | null | undefined;\n\n    /**\n     * The meter identifier\n     */\n    meterId: number | null | undefined;\n\n    /**\n     * The date and time the data was updated\n     */\n    updated: Date | null | undefined;\n\n    nativeUseUnit: UnitChild | null | undefined;\n\n    nativeDemandUnit: UnitChild | null | undefined;\n\n    commonUseUnit: UnitChild | null | undefined;\n\n    /**\n     * An array of monthly data\n     */\n    results: Array<MeterDigestNormalizedMonthlyResponseResults> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class MeterDigestNormalizedMonthlyResponseResults {\n    /**\n     * Calendar Period Name\n     */\n    periodName: string | null | undefined;\n\n    /**\n     * Calendar Period\n     */\n    calendarPeriod: number | null | undefined;\n\n    /**\n     * Calendar Year\n     */\n    calendarYear: number | null | undefined;\n\n    /**\n     * Fiscal Period\n     */\n    fiscalPeriod: number | null | undefined;\n\n    /**\n     * Fiscal Year\n     */\n    fiscalYear: number | null | undefined;\n\n    /**\n     * The number of days in the period\n     */\n    days: number | null | undefined;\n\n    /**\n     * Cumulative Native Use\n     */\n    cumulativeNativeUse: number | null | undefined;\n\n    /**\n     * Native Use\n     */\n    nativeUse: number | null | undefined;\n\n    /**\n     * Common Use\n     */\n    commonUse: number | null | undefined;\n\n    /**\n     * Native Actual Demand\n     */\n    nativeActualDemand: number | null | undefined;\n\n    /**\n     * Native Billed Demand\n     */\n    nativeBilledDemand: number | null | undefined;\n\n    /**\n     * Load Factor\n     */\n    loadFactor: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { MeterDigestNormalizedYearlyResponseResults } from './meterDigestNormalizedYearlyResponseResults';\nimport { UnitChild } from './unitChild';\n\n\nexport class MeterDigestNormalizedYearlyResponse {\n    /**\n     * The meter code\n     */\n    meterCode: string | null | undefined;\n\n    /**\n     * The meter info\n     */\n    meterInfo: string | null | undefined;\n\n    /**\n     * The meter identifier\n     */\n    meterId: number | null | undefined;\n\n    nativeUseUnit: UnitChild | null | undefined;\n\n    nativeDemandUnit: UnitChild | null | undefined;\n\n    commonUseUnit: UnitChild | null | undefined;\n\n    /**\n     * The date and time the data was updated\n     */\n    updated: Date | null | undefined;\n\n    /**\n     * An array of yearly data\n     */\n    results: Array<MeterDigestNormalizedYearlyResponseResults> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class MeterDigestNormalizedYearlyResponseResults {\n    /**\n     * year\n     */\n    year: string | null | undefined;\n\n    /**\n     * Native use\n     */\n    nativeUse: number | null | undefined;\n\n    /**\n     * Native demand\n     */\n    nativeDemand: number | null | undefined;\n\n    /**\n     * Common use\n     */\n    commonUse: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { MeterCAPResponse } from './meterCAPResponse';\nimport { MeterDigestSavingsMonthlyResponseResults } from './meterDigestSavingsMonthlyResponseResults';\nimport { UnitChild } from './unitChild';\n\n\nexport class MeterDigestSavingsMonthlyResponse {\n    /**\n     * The meter identifier\n     */\n    meterId: number | null | undefined;\n\n    /**\n     * The meter code\n     */\n    meterCode: string | null | undefined;\n\n    /**\n     * The meter info\n     */\n    meterInfo: string | null | undefined;\n\n    meterCAP: MeterCAPResponse | null | undefined;\n\n    nativeUseUnit: UnitChild | null | undefined;\n\n    commonUseUnit: UnitChild | null | undefined;\n\n    costUnit: UnitChild | null | undefined;\n\n    /**\n     * An array of monthly data\n     */\n    results: Array<MeterDigestSavingsMonthlyResponseResults> | null | undefined;\n\n    /**\n     * The date and time the data was updated\n     */\n    updated: Date | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class MeterDigestSavingsMonthlyResponseResults {\n    /**\n     * Calendar Period\n     */\n    calendarPeriod: number | null | undefined;\n\n    /**\n     * Calendar Year\n     */\n    calendarYear: number | null | undefined;\n\n    /**\n     * Fiscal Period\n     */\n    fiscalPeriod: number | null | undefined;\n\n    /**\n     * Fiscal Year\n     */\n    fiscalYear: number | null | undefined;\n\n    /**\n     * Calendar Period Name\n     */\n    periodName: string | null | undefined;\n\n    /**\n     * The number of days in the period\n     */\n    days: number | null | undefined;\n\n    /**\n     * Total Cost\n     */\n    savingsTotalCost: number | null | undefined;\n\n    /**\n     * BATCC (Baseline Adjusted to Current Conditions) Native Use\n     */\n    batccNativeUse: number | null | undefined;\n\n    /**\n     * Native Use\n     */\n    nativeUse: number | null | undefined;\n\n    /**\n     * Savings Native Use = BATCCNativeUse - NativeUse\n     */\n    savingsNativeUse: number | null | undefined;\n\n    /**\n     * BATCC (Baseline Adjusted to Current Conditions) Common Use\n     */\n    batccCommonUse: number | null | undefined;\n\n    /**\n     * Common Use\n     */\n    commonUse: number | null | undefined;\n\n    /**\n     * Savings Common Use = BATCCCommonUse - CommonUse\n     */\n    savingsCommonUse: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { MeterCAPResponse } from './meterCAPResponse';\nimport { MeterDigestSavingsYearlyResponseResults } from './meterDigestSavingsYearlyResponseResults';\nimport { UnitChild } from './unitChild';\n\n\nexport class MeterDigestSavingsYearlyResponse {\n    /**\n     * The meter identifier\n     */\n    meterId: number | null | undefined;\n\n    /**\n     * The meter code\n     */\n    meterCode: string | null | undefined;\n\n    /**\n     * The meter info\n     */\n    meterInfo: string | null | undefined;\n\n    meterCAP: MeterCAPResponse | null | undefined;\n\n    nativeUseUnit: UnitChild | null | undefined;\n\n    commonUseUnit: UnitChild | null | undefined;\n\n    costUnit: UnitChild | null | undefined;\n\n    /**\n     * Program to Date BATCC (Baseline Adjusted to Current Conditions) Native Use\n     */\n    allTimeBATCCNativeUse: number | null | undefined;\n\n    /**\n     * Program to Date Native Use\n     */\n    allTimeNativeUse: number | null | undefined;\n\n    /**\n     * Program to Date Savings Native Use = allTimeBATCCNativeUse - allTimeNativeUse\n     */\n    allTimeSavingsNativeUse: number | null | undefined;\n\n    /**\n     * Program to Date BATCC (Baseline Adjusted to Current Conditions) Common Use\n     */\n    allTimeBATCCCommonUse: number | null | undefined;\n\n    /**\n     * Program to Date Common Use\n     */\n    allTimeCommonUse: number | null | undefined;\n\n    /**\n     * Program to Date Savings Common Use = allTimeBATCCCommonUse - allTimeCommonUse\n     */\n    allTimeSavingsCommonUse: number | null | undefined;\n\n    /**\n     * Program to Date BATCC (Baseline Adjusted to Current Conditions) Total Cost\n     */\n    allTimeBATCCTotalCost: number | null | undefined;\n\n    /**\n     * Program to Date Total Cost\n     */\n    allTimeTotalCost: number | null | undefined;\n\n    /**\n     * Program to Date Savings Total Cost = allTimeBATCCTotalCost - allTimeTotalCost\n     */\n    allTimeSavingsTotalCost: number | null | undefined;\n\n    /**\n     * The date and time the data was updated\n     */\n    updated: Date | null | undefined;\n\n    /**\n     * The saving program's start date\n     */\n    savingsStartDate: Date | null | undefined;\n\n    /**\n     * An array of yearly data\n     */\n    results: Array<MeterDigestSavingsYearlyResponseResults> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class MeterDigestSavingsYearlyResponseResults {\n    /**\n     * Year\n     */\n    year: string | null | undefined;\n\n    /**\n     * BATCC (Baseline Adjusted to Current Conditions) Total Cost\n     */\n    batccTotalCost: number | null | undefined;\n\n    /**\n     * Total Cost\n     */\n    totalCost: number | null | undefined;\n\n    /**\n     * Savings Total Cost = BATCCTotalCost - TotalCost\n     */\n    savingsTotalCost: number | null | undefined;\n\n    /**\n     * BATCC (Baseline Adjusted to Current Conditions) Native Use\n     */\n    batccNativeUse: number | null | undefined;\n\n    /**\n     * Native Use\n     */\n    nativeUse: number | null | undefined;\n\n    /**\n     * Savings Native Use = BATCCNativeUse - NativeUse\n     */\n    savingsNativeUse: number | null | undefined;\n\n    /**\n     * BATCC (Baseline Adjusted to Current Conditions) Common Use\n     */\n    batccCommonUse: number | null | undefined;\n\n    /**\n     * Common Use\n     */\n    commonUse: number | null | undefined;\n\n    /**\n     * Savings Common Use = BATCCCommonUse - CommonUse\n     */\n    savingsCommonUse: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AddressChild } from './addressChild';\n\n\nexport class MeterEdit {\n    /**\n     * The meter code <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 32 characters</span>\n     */\n    meterCode: string | null ;\n\n    /**\n     * The meter info <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 50 characters</span>\n     */\n    meterInfo: string | null ;\n\n    /**\n     * The identifier for the place the meter is assigned to <span class='property-internal'>Topmost (Place)</span> <span class='property-internal'>Required</span>\n     */\n    placeId: number | null ;\n\n    /**\n     * The commodity identifier that the meter is assigned to.  If different from original commodity id, then a commodity change will be attempted. <span class='property-internal'>Required</span>\n     */\n    commodityId: number | null ;\n\n    address: AddressChild | null | undefined;\n\n    /**\n     * The bill entry note <span class='property-internal'>Must be between 0 and 64 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    billEntryNote: string | null | undefined;\n\n    /**\n     * DEPRECATED To be included in ENERGY STAR a meter needs to be linked to a meter in Portfolio Manager This can be done with the PUT place/{placeId}/energyStar/link or the ENERGY STAR: Mappings Setup Sheet <span class='property-internal'>Required (defined)</span>\n     */\n    includeInEnergyStar: boolean | null | undefined;\n\n    /**\n     * The identifier for the meter's primary use <span class='property-internal'>Required (defined)</span>\n     */\n    primaryUseId: number | null | undefined;\n\n    /**\n     * The identifier for the meter's time zone. <span class='property-internal'>Required</span>\n     */\n    meterTimeZoneId: number | null ;\n\n    /**\n     * Is this meter active? <span class='property-internal'>Required</span>\n     */\n    active: boolean | null ;\n\n    /**\n     * An array of meter properties <span class='property-internal'>Required (defined)</span>\n     */\n    properties: { [key: string]: string; } | null | undefined;\n\n    /**\n     * The use unit ID is the reporting unit for use for this meter.  If it is null the use unit will be removed (only if the commodity does not have a default use unit, otherwise an exception will be thrown) <span class='property-internal'>Required (defined)</span>\n     */\n    useUnitId: number | null | undefined;\n\n    /**\n     * The demand unit ID is the reporting unit for demand for this meter.  If it is null the demand unit will be removed <span class='property-internal'>Required (defined)</span>\n     */\n    demandUnitId: number | null | undefined;\n\n    /**\n     * A description of the meter <span class='property-internal'>Must be between 0 and 4000 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    meterDescription: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class MeterGroupCategoryChild {\n    /**\n     * \n     */\n    meterGroupCategoryId: number | null | undefined;\n\n    /**\n     * \n     */\n    meterGroupCategoryCode: string | null | undefined;\n\n    /**\n     * \n     */\n    meterGroupCategoryInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class MeterGroupChild {\n    /**\n     * The meter group identifier\n     */\n    meterGroupId: number | null | undefined;\n\n    /**\n     * The meter group code\n     */\n    meterGroupCode: string | null | undefined;\n\n    /**\n     * The meter group info\n     */\n    meterGroupInfo: string | null | undefined;\n\n    /**\n     * Indicates if this meter group is an autogroup\n     */\n    autoGroup: boolean | null | undefined;\n\n    /**\n     * Indicates if this meter group is an user defined auto group\n     */\n    userDefinedAutoGroup: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CommodityChild } from './commodityChild';\n\n\nexport class MeterGroupDigestChild {\n    /**\n     * \n     */\n    meterId: number | null | undefined;\n\n    /**\n     * \n     */\n    meterCode: string | null | undefined;\n\n    /**\n     * \n     */\n    meterInfo: string | null | undefined;\n\n    /**\n     * \n     */\n    meterDisplay: string | null | undefined;\n\n    commodity: CommodityChild | null | undefined;\n\n    /**\n     * \n     */\n    includeInCharts: boolean | null | undefined;\n\n    /**\n     * Indicates whether the Meter is Active\n     */\n    active: boolean | null | undefined;\n\n    /**\n     * Indicates whether the Meter is a calculated meter\n     */\n    isCalculatedMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the Meter is a parent of a split\n     */\n    isSplitParentMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the Meter is a child of a split\n     */\n    isSplitChildMeter: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CommodityChild } from './commodityChild';\n\n\nexport class MeterGroupDigestDemandRankingChild {\n    /**\n     * \n     */\n    cost: number | null | undefined;\n\n    /**\n     * \n     */\n    value: number | null | undefined;\n\n    /**\n     * \n     */\n    meterId: number | null | undefined;\n\n    /**\n     * \n     */\n    meterCode: string | null | undefined;\n\n    /**\n     * \n     */\n    meterInfo: string | null | undefined;\n\n    /**\n     * \n     */\n    meterDisplay: string | null | undefined;\n\n    commodity: CommodityChild | null | undefined;\n\n    /**\n     * \n     */\n    includeInCharts: boolean | null | undefined;\n\n    /**\n     * Indicates whether the Meter is Active\n     */\n    active: boolean | null | undefined;\n\n    /**\n     * Indicates whether the Meter is a calculated meter\n     */\n    isCalculatedMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the Meter is a parent of a split\n     */\n    isSplitParentMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the Meter is a child of a split\n     */\n    isSplitChildMeter: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { MeterGroupDigestDemandRankingChild } from './meterGroupDigestDemandRankingChild';\nimport { UnitChild } from './unitChild';\n\n\nexport class MeterGroupDigestDemandRankingResponse {\n    /**\n     * \n     */\n    highCost: number | null | undefined;\n\n    /**\n     * \n     */\n    lowCost: number | null | undefined;\n\n    /**\n     * \n     */\n    averageCost: number | null | undefined;\n\n    /**\n     * \n     */\n    medianCost: number | null | undefined;\n\n    /**\n     * \n     */\n    highValue: number | null | undefined;\n\n    /**\n     * \n     */\n    lowValue: number | null | undefined;\n\n    /**\n     * \n     */\n    averageValue: number | null | undefined;\n\n    /**\n     * \n     */\n    medianValue: number | null | undefined;\n\n    costUnit: UnitChild | null | undefined;\n\n    /**\n     * \n     */\n    benchmarkUnit: string | null | undefined;\n\n    /**\n     * \n     */\n    benchmarkValueUnit: string | null | undefined;\n\n    /**\n     * \n     */\n    benchmarkFactorUnit: string | null | undefined;\n\n    /**\n     * \n     */\n    results: Array<MeterGroupDigestDemandRankingChild> | null | undefined;\n\n    /**\n     * \n     */\n    meterGroupId: number | null | undefined;\n\n    /**\n     * \n     */\n    meterGroupCode: string | null | undefined;\n\n    /**\n     * \n     */\n    meterGroupInfo: string | null | undefined;\n\n    /**\n     * \n     */\n    meterGroupDisplay: string | null | undefined;\n\n    /**\n     * The date and time the data was updated\n     */\n    updated: Date | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CommodityChild } from './commodityChild';\n\n\nexport class MeterGroupDigestRankingChild {\n    /**\n     * \n     */\n    cost: number | null | undefined;\n\n    /**\n     * \n     */\n    use: number | null | undefined;\n\n    /**\n     * \n     */\n    unitCost: number | null | undefined;\n\n    /**\n     * \n     */\n    value: number | null | undefined;\n\n    /**\n     * \n     */\n    days: number | null | undefined;\n\n    /**\n     * \n     */\n    savingsOpportunity: number | null | undefined;\n\n    /**\n     * \n     */\n    meterId: number | null | undefined;\n\n    /**\n     * \n     */\n    meterCode: string | null | undefined;\n\n    /**\n     * \n     */\n    meterInfo: string | null | undefined;\n\n    /**\n     * \n     */\n    meterDisplay: string | null | undefined;\n\n    commodity: CommodityChild | null | undefined;\n\n    /**\n     * \n     */\n    includeInCharts: boolean | null | undefined;\n\n    /**\n     * Indicates whether the Meter is Active\n     */\n    active: boolean | null | undefined;\n\n    /**\n     * Indicates whether the Meter is a calculated meter\n     */\n    isCalculatedMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the Meter is a parent of a split\n     */\n    isSplitParentMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the Meter is a child of a split\n     */\n    isSplitChildMeter: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { MeterGroupDigestRankingChild } from './meterGroupDigestRankingChild';\nimport { UnitChild } from './unitChild';\n\n\nexport class MeterGroupDigestRankingResponse {\n    /**\n     * \n     */\n    highCost: number | null | undefined;\n\n    /**\n     * \n     */\n    lowCost: number | null | undefined;\n\n    /**\n     * \n     */\n    averageCost: number | null | undefined;\n\n    /**\n     * \n     */\n    medianCost: number | null | undefined;\n\n    /**\n     * \n     */\n    highUse: number | null | undefined;\n\n    /**\n     * \n     */\n    lowUse: number | null | undefined;\n\n    /**\n     * \n     */\n    averageUse: number | null | undefined;\n\n    /**\n     * \n     */\n    medianUse: number | null | undefined;\n\n    /**\n     * \n     */\n    highUnitCost: number | null | undefined;\n\n    /**\n     * \n     */\n    lowUnitCost: number | null | undefined;\n\n    /**\n     * \n     */\n    averageUnitCost: number | null | undefined;\n\n    /**\n     * \n     */\n    medianUnitCost: number | null | undefined;\n\n    /**\n     * \n     */\n    highValue: number | null | undefined;\n\n    /**\n     * \n     */\n    lowValue: number | null | undefined;\n\n    /**\n     * \n     */\n    averageValue: number | null | undefined;\n\n    /**\n     * \n     */\n    medianValue: number | null | undefined;\n\n    costUnit: UnitChild | null | undefined;\n\n    useUnit: UnitChild | null | undefined;\n\n    /**\n     * \n     */\n    benchmarkUnit: string | null | undefined;\n\n    /**\n     * \n     */\n    benchmarkValueUnit: string | null | undefined;\n\n    /**\n     * \n     */\n    benchmarkFactorUnit: string | null | undefined;\n\n    /**\n     * \n     */\n    highSavingsOpportunity: number | null | undefined;\n\n    /**\n     * \n     */\n    results: Array<MeterGroupDigestRankingChild> | null | undefined;\n\n    /**\n     * \n     */\n    meterGroupId: number | null | undefined;\n\n    /**\n     * \n     */\n    meterGroupCode: string | null | undefined;\n\n    /**\n     * \n     */\n    meterGroupInfo: string | null | undefined;\n\n    /**\n     * \n     */\n    meterGroupDisplay: string | null | undefined;\n\n    /**\n     * The date and time the data was updated\n     */\n    updated: Date | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class MeterGroupMember {\n    /**\n     * The meter group this meter will belong to <span class='property-internal'>Required (defined)</span>\n     */\n    meterGroupId: number | null | undefined;\n\n    /**\n     * Whether to include this meter in the group's benchmark charts <span class='property-internal'>Required (defined)</span>\n     */\n    includeInCharts: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CommodityChild } from './commodityChild';\nimport { MeterTypeChild } from './meterTypeChild';\nimport { PlaceChild } from './placeChild';\n\n\nexport class MeterGroupMemberChild {\n    /**\n     * The meter identifier <span class='property-internal'>Required (defined)</span>\n     */\n    meterId: number | null | undefined;\n\n    /**\n     * The meter code <span class='property-internal'>Required (defined)</span>\n     */\n    meterCode: string | null | undefined;\n\n    /**\n     * The meter info <span class='property-internal'>Required (defined)</span>\n     */\n    meterInfo: string | null | undefined;\n\n    meterType: MeterTypeChild | null | undefined;\n\n    commodity: CommodityChild | null | undefined;\n\n    place: PlaceChild | null | undefined;\n\n    /**\n     * The flag determining whether the meter is included in group charts <span class='property-internal'>Required (defined)</span>\n     */\n    includeInCharts: boolean | null | undefined;\n\n    /**\n     * Indicates whether the Meter is Active <span class='property-internal'>Required (defined)</span>\n     */\n    active: boolean | null | undefined;\n\n    /**\n     * Indicates whether the Meter is a calculated meter <span class='property-internal'>Required (defined)</span>\n     */\n    isCalculatedMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the Meter is a parent of a split <span class='property-internal'>Required (defined)</span>\n     */\n    isSplitParentMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the Meter is a child of a split <span class='property-internal'>Required (defined)</span>\n     */\n    isSplitChildMeter: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { FilterEdit } from './filterEdit';\n\n\nexport class MeterGroupRequest {\n    /**\n     * The meter group info <span class='property-internal'>Must be between 0 and 255 characters</span> <span class='property-internal'>Required</span>\n     */\n    meterGroupInfo: string | null ;\n\n    /**\n     * The meter group category <span class='property-internal'>Required</span>\n     */\n    meterGroupCategoryId: number | null ;\n\n    /**\n     * Should this group only return members within the current user's topmost <span class='property-internal'>Required</span>\n     */\n    limitMembersByTopmost: boolean | null ;\n\n    /**\n     * List of filters to add members to an automatic meter group Either AutomaticGroupFilters or ManualGroupMembers, but not both, must be passed in <span class='property-internal'>Cannot be Empty</span> <span class='property-internal'>NULL Valid</span> <span class='property-internal'>Only one of AutomaticGroupFilters, ManualGroupMembers can be set</span>\n     */\n    automaticGroupFilters: Array<FilterEdit> | null | undefined;\n\n    /**\n     * List of members to add to the group Either AutomaticGroupFilters or ManualGroupMembers, but not both, must be passed in Members but be within the current user's topmost You can create an empty group by passing in an empty array <span class='property-internal'>Only one of AutomaticGroupFilters, ManualGroupMembers can be set</span>\n     */\n    manualGroupMembers: Array<number> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { MeterGroupCategoryChild } from './meterGroupCategoryChild';\n\n\nexport class MeterGroupResponse {\n    /**\n     * The meter group identifier\n     */\n    meterGroupId: number | null | undefined;\n\n    /**\n     * The meter group code\n     */\n    meterGroupCode: string | null | undefined;\n\n    /**\n     * The meter group info\n     */\n    meterGroupInfo: string | null | undefined;\n\n    /**\n     * Indicates if this meter group is an autogroup\n     */\n    autoGroup: boolean | null | undefined;\n\n    meterGroupCategory: MeterGroupCategoryChild | null | undefined;\n\n    /**\n     * Indicates if this meter group is an user defined auto group\n     */\n    userDefinedAutoGroup: boolean | null | undefined;\n\n    /**\n     * The last time a member was inserted, updated, or deleted from the group\n     */\n    lastUpdated: Date | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class MeterLink {\n    /**\n     * The identifier for a Meter\n     */\n    meterId: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class MeterLinkRequest {\n    /**\n     * The identifier for a Meter. Set to null to remove the link. <span class='property-internal'>Topmost (Meter)</span> <span class='property-internal'>Required (defined)</span>\n     */\n    meterId: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CommodityChild } from './commodityChild';\nimport { MeterAccountChild } from './meterAccountChild';\n\n\nexport class MeterRateResponse {\n    /**\n     * The meter tariff identifier\n     */\n    rateId: number | null | undefined;\n\n    /**\n     * The rate name\n     */\n    name: string | null | undefined;\n\n    /**\n     * The rate code\n     */\n    rateCode: string | null | undefined;\n\n    /**\n     * The start date for the rate on the account meter\n     */\n    startDate: Date | null | undefined;\n\n    /**\n     * The end date for the rate on the account meter\n     */\n    endDate: Date | null | undefined;\n\n    account: MeterAccountChild | null | undefined;\n\n    commodity: CommodityChild | null | undefined;\n\n    /**\n     * The rate's note\n     */\n    note: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AddressChild } from './addressChild';\nimport { ChannelChild } from './channelChild';\nimport { CommodityChild } from './commodityChild';\nimport { EmissionSourceLink } from './emissionSourceLink';\nimport { MeterAccountChild } from './meterAccountChild';\nimport { MeterSerialNumberHistoryChild } from './meterSerialNumberHistoryChild';\nimport { MeterTypeChild } from './meterTypeChild';\nimport { PlaceChild } from './placeChild';\nimport { PrimaryUseChild } from './primaryUseChild';\nimport { RouteChild } from './routeChild';\nimport { TimeZoneChild } from './timeZoneChild';\nimport { UnitChild } from './unitChild';\nimport { UserChild } from './userChild';\nimport { WatticsDataPoint } from './watticsDataPoint';\n\n\nexport class MeterResponse {\n    /**\n     * The identifier for the meter\n     */\n    meterId: number | null | undefined;\n\n    /**\n     * The meter code\n     */\n    meterCode: string | null | undefined;\n\n    /**\n     * The meter info\n     */\n    meterInfo: string | null | undefined;\n\n    meterType: MeterTypeChild | null | undefined;\n\n    /**\n     * An array of channels assigned to this meter\n     */\n    channels: Array<ChannelChild> | null | undefined;\n\n    /**\n     * \n     */\n    accounts: Array<MeterAccountChild> | null | undefined;\n\n    commodity: CommodityChild | null | undefined;\n\n    place: PlaceChild | null | undefined;\n\n    address: AddressChild | null | undefined;\n\n    /**\n     * The bill entry note\n     */\n    billEntryNote: string | null | undefined;\n\n    /**\n     * Indicates if the building is included in ENERGY STAR submissions\n     */\n    includeInEnergyStar: boolean | null | undefined;\n\n    primaryUse: PrimaryUseChild | null | undefined;\n\n    createdBy: UserChild | null | undefined;\n\n    /**\n     * The date and time the meter was created\n     */\n    createdDate: Date | null | undefined;\n\n    modifiedBy: UserChild | null | undefined;\n\n    /**\n     * The date and time of the most recent modification of the meter\n     */\n    modifiedDate: Date | null | undefined;\n\n    /**\n     * An array of meter properties\n     */\n    properties: { [key: string]: string; } | null | undefined;\n\n    /**\n     * Indicates if the meter should be included in cost avoidance\n     */\n    includeInCostAvoidance: boolean | null | undefined;\n\n    route: RouteChild | null | undefined;\n\n    meterTimeZone: TimeZoneChild | null | undefined;\n\n    /**\n     * Indicates whether the Meter is Active\n     */\n    active: boolean | null | undefined;\n\n    /**\n     * Indicates whether the Meter is a calculated meter\n     */\n    isCalculatedMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the Meter is a parent of a split\n     */\n    isSplitParentMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the Meter is a child of a split\n     */\n    isSplitChildMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the Meter is an ESA calculated meter\n     */\n    isEsaCalculatedMeter: boolean | null | undefined;\n\n    useUnit: UnitChild | null | undefined;\n\n    demandUnit: UnitChild | null | undefined;\n\n    /**\n     * Meter's currently assigned serial number\n     */\n    serialNumber: string | null | undefined;\n\n    serialNumberHistory: MeterSerialNumberHistoryChild | null | undefined;\n\n    /**\n     * A description of the meter\n     */\n    meterDescription: string | null | undefined;\n\n    watticsDataPoint: WatticsDataPoint | null | undefined;\n\n    emissionSource: EmissionSourceLink | null | undefined;\n\n    /**\n     * Provides some insight into the current Sentinel enabled status.\n     */\n    sentinelStatus: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class MeterSavingsSettings {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class MeterSavingsSettingsClassPermission {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\n/**\n * Parameters to use for performing a utility platform meter search\n */\nexport class MeterSearchRequest {\n    /**\n     * Type of input to use for meter search <span class='property-internal'>One of 'Address', 'SerialNumber'</span>\n     */\n    searchType: string | null | undefined;\n\n    /**\n     * List of premise ids to search for <span class='property-internal'>Required when SearchType is set to Address</span> <span class='property-internal'>List cannot be empty</span> <span class='property-internal'>Only one of Addresses, SerialNumbers can be set</span>\n     */\n    addresses: Array<string> | null | undefined;\n\n    /**\n     * List of serial numbers to search for <span class='property-internal'>Required when SearchType is set to SerialNumber</span> <span class='property-internal'>List cannot be empty</span> <span class='property-internal'>Only one of Addresses, SerialNumbers can be set</span>\n     */\n    serialNumbers: Array<string> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class MeterSerialNumberHistoryChild {\n    /**\n     * Previous serial number of the meter\n     */\n    previousSerialNumber: string | null | undefined;\n\n    /**\n     * Date that serial number changed\n     */\n    serialNumberChangeDate: Date | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class MeterSerialNumberHistoryRequest {\n    /**\n     * Serial number that will replace the existing one <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 255 characters</span>\n     */\n    newSerialNumber: string | null ;\n\n    /**\n     * Date that serial number changed <span class='property-internal'>Required (defined)</span>\n     */\n    serialNumberChangeDate: Date | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { MeterSerialNumberHistoryChild } from './meterSerialNumberHistoryChild';\n\n\nexport class MeterSerialNumberHistoryResponse {\n    /**\n     * Meter identifier <span class='property-internal'>Required (defined)</span>\n     */\n    meterId: number | null | undefined;\n\n    /**\n     * Serial number of the meter <span class='property-internal'>Required (defined)</span>\n     */\n    serialNumber: string | null | undefined;\n\n    serialNumberHistory: MeterSerialNumberHistoryChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { MeterAccountChild } from './meterAccountChild';\nimport { TemplateChild } from './templateChild';\n\n\nexport class MeterTemplateResponse {\n    /**\n     * The form template identifier\n     */\n    formTemplateId: number | null | undefined;\n\n    /**\n     * The meter template display order\n     */\n    displayOrder: number | null | undefined;\n\n    /**\n     * The begin date for the template on the account meter\n     */\n    beginDate: Date | null | undefined;\n\n    /**\n     * The end date for the template on the account meter\n     */\n    endDate: Date | null | undefined;\n\n    template: TemplateChild | null | undefined;\n\n    account: MeterAccountChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class MeterTypeChild {\n    /**\n     * \n     */\n    meterTypeId: number | null | undefined;\n\n    /**\n     * \n     */\n    meterTypeCode: string | null | undefined;\n\n    /**\n     * \n     */\n    meterTypeInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { UDFFieldChild } from './uDFFieldChild';\n\n\nexport class MeterUDFResponse {\n    /**\n     * The meter identifier\n     */\n    meterId: number | null | undefined;\n\n    /**\n     * The meter code\n     */\n    meterCode: string | null | undefined;\n\n    /**\n     * The meter info\n     */\n    meterInfo: string | null | undefined;\n\n    /**\n     * An array of user-defined fields (UDFs)\n     */\n    udfs: Array<UDFFieldChild> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class Meters {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    create: boolean | null | undefined;\n\n    /**\n     * \n     */\n    edit: boolean | null | undefined;\n\n    /**\n     * \n     */\n    delete: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class MetersClassPermission {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    create: boolean | null | undefined;\n\n    /**\n     * \n     */\n    edit: boolean | null | undefined;\n\n    /**\n     * \n     */\n    delete: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class MissingBillWidget {\n    /**\n     * The begin date of the gap in billing data\n     */\n    gapBeginDate: Date | null | undefined;\n\n    /**\n     * The end date of the gap in billing data\n     */\n    gapEndDate: Date | null | undefined;\n\n    /**\n     * The number of days in the gap in billing data\n     */\n    gapDays: number | null | undefined;\n\n    /**\n     * The account that is missing billing data\n     */\n    accountId: number | null | undefined;\n\n    /**\n     * The account that is missing billing data\n     */\n    accountInfo: string | null | undefined;\n\n    /**\n     * The meter that is missing billing data\n     */\n    meterInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ModelVoid {\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class MonthlyCAPTrend {\n    /**\n     * The actual cost\n     */\n    actualCost: number | null | undefined;\n\n    /**\n     * The cap cost\n     */\n    capCost: number | null | undefined;\n\n    /**\n     * The avoided cost\n     */\n    avoidedCost: number | null | undefined;\n\n    /**\n     * The percent cost\n     */\n    percentCost: number | null | undefined;\n\n    /**\n     * The billing period\n     */\n    billingPeriod: number | null | undefined;\n\n    /**\n     * The fiscal period\n     */\n    fiscalPeriod: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class MonthlyTimeSeriesValue {\n    /**\n     * \n     */\n    id: number | null | undefined;\n\n    /**\n     * \n     */\n    formattedValue: string | null | undefined;\n\n    /**\n     * \n     */\n    month: number | null | undefined;\n\n    /**\n     * \n     */\n    value: number | null | undefined;\n\n    /**\n     * \n     */\n    unit: string | null | undefined;\n\n    /**\n     * \n     */\n    rawValue: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class MostRecentAggregate {\n    /**\n     * The identifier of the aggregate meter\n     */\n    aggregateMeterId: number | null | undefined;\n\n    /**\n     * The effective date of the aggregation\n     */\n    effectiveDate: Date | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class MoveAccountsBetweenVendors {\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class MoveAccountsBetweenVendorsClassPermission {\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CommodityChild } from './commodityChild';\nimport { DestinationAccountResponse } from './destinationAccountResponse';\n\n\nexport class MoveBillsDestination {\n    /**\n     *  <span class='property-internal'>Required (defined)</span>\n     */\n    commodities: Array<CommodityChild> | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Required (defined)</span>\n     */\n    accounts: Array<DestinationAccountResponse> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CommodityChild } from './commodityChild';\n\n\n/**\n * \n */\nexport class MoveCreateMeter {\n    /**\n     * The meter code\n     */\n    meterCode: string | null | undefined;\n\n    /**\n     * The meter display name\n     */\n    meterDisplay: string | null | undefined;\n\n    commodity: CommodityChild | null | undefined;\n\n    /**\n     * The meter serial number\n     */\n    serialNumber: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class MoveExistingBills {\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class MoveExistingBillsClassPermission {\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\n/**\n * This class represents a date period (YYYYMM) which could be an accounting period or a billing/calendar period.\n */\nexport class NamedPeriod {\n    /**\n     * Name of the period to be displayed Should be empty if billing period\n     */\n    periodName: string | null | undefined;\n\n    /**\n     * Value of the period in format (YYYYPP) PP may be a calendar month (e.g. 01-12) but it could be an accounting period (e.g. 01-13)\n     */\n    period: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class NormalizationSettings {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class NormalizationSettingsClassPermission {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class NotificationActionButtonResponse {\n    /**\n     * Url the action will link to\n     */\n    url: string | null | undefined;\n\n    /**\n     * Label the action will display\n     */\n    label: string | null | undefined;\n\n    /**\n     * Should clicking the action link open a new window\n     */\n    openInNewWindow: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class NotificationBadgeResponse {\n    /**\n     * Total of unread and unarchived notifications\n     */\n    totalNotifications: number | null | undefined;\n\n    /**\n     * Total of unread and unarchived notifications since the last checked date time\n     */\n    newNotifications: number | null | undefined;\n\n    /**\n     * The date and time in UTC the query to get the badge data was run\n     */\n    lastCheckDateTimeUtc: Date | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class NotificationCategory {\n    /**\n     * The id of the notification category\n     */\n    notificationCategoryId: number | null | undefined;\n\n    /**\n     * The notification category name\n     */\n    notificationCategoryInfo: string | null | undefined;\n\n    /**\n     * A description of the notification category\n     */\n    notificationCategoryDescription: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { NotificationActionButtonResponse } from './notificationActionButtonResponse';\nimport { NotificationType } from './notificationType';\nimport { UserChild } from './userChild';\n\n\nexport class NotificationDetailsResponse {\n    /**\n     * The full notification message\n     */\n    message: string | null | undefined;\n\n    createdByUser: UserChild | null | undefined;\n\n    primaryAction: NotificationActionButtonResponse | null | undefined;\n\n    secondaryAction: NotificationActionButtonResponse | null | undefined;\n\n    /**\n     * The id of the notification\n     */\n    notificationId: number | null | undefined;\n\n    /**\n     * True if the notification has been read\n     */\n    read: boolean | null | undefined;\n\n    /**\n     * True if the notification has been archived\n     */\n    archived: boolean | null | undefined;\n\n    /**\n     * Subject of the notification\n     */\n    subject: string | null | undefined;\n\n    /**\n     * The date and time the notification was generated\n     */\n    createdDate: Date | null | undefined;\n\n    notificationType: NotificationType | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { NotificationType } from './notificationType';\n\n\nexport class NotificationResponse {\n    /**\n     * The notification message with any html tags stripped out\n     */\n    messagePreview: string | null | undefined;\n\n    /**\n     * The id of the notification\n     */\n    notificationId: number | null | undefined;\n\n    /**\n     * True if the notification has been read\n     */\n    read: boolean | null | undefined;\n\n    /**\n     * True if the notification has been archived\n     */\n    archived: boolean | null | undefined;\n\n    /**\n     * Subject of the notification\n     */\n    subject: string | null | undefined;\n\n    /**\n     * The date and time the notification was generated\n     */\n    createdDate: Date | null | undefined;\n\n    notificationType: NotificationType | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class NotificationSettingRequest {\n    /**\n     * The id of the notification type <span class='property-internal'>Required</span>\n     */\n    notificationTypeId: number | null ;\n\n    /**\n     * Update the configured notification option To get the list of available options for each setting call the GetNotificationSystemSettings or GetNotificationUserSettings API If your database is not configured to send emails, passing in ShowInAppAndSendEmail will return an error <span class='property-internal'>One of 'ShowInAppAndSendEmail', 'ShowInAppOnly', 'Off'</span> <span class='property-internal'>Required</span>\n     */\n    configuredNotificationOption: string | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { NotificationType } from './notificationType';\n\n\nexport class NotificationSettingResponse {\n    notificationType: NotificationType | null | undefined;\n\n    /**\n     * The currently configured notification option\n     */\n    configuredNotificationOption: string | null | undefined;\n\n    /**\n     * All possible notification options for this setting\n     */\n    availableNotificationOptions: Array<string> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { NotificationSettingResponse } from './notificationSettingResponse';\n\n\nexport class NotificationSettingsResponse {\n    /**\n     * Are user's allowed to get email notifications\n     */\n    allowUsersToEmailNotifications: boolean | null | undefined;\n\n    /**\n     * The list of notification settings available and their configured value\n     */\n    notificationSettings: Array<NotificationSettingResponse> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { NotificationSettingRequest } from './notificationSettingRequest';\n\n\nexport class NotificationSystemSettingsRequest {\n    /**\n     * Are user's allowed to get email notifications <span class='property-internal'>Required</span>\n     */\n    allowUsersToEmailNotifications: boolean | null ;\n\n    /**\n     * The list of notification settings and the configured value If a notification type is not passed the configured value will remain what it was set to <span class='property-internal'>Required (defined)</span>\n     */\n    notificationSettings: Array<NotificationSettingRequest> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { NotificationCategory } from './notificationCategory';\n\n\nexport class NotificationType {\n    /**\n     * The id of the notification type\n     */\n    notificationTypeId: number | null | undefined;\n\n    /**\n     * The notification type name\n     */\n    notificationTypeInfo: string | null | undefined;\n\n    /**\n     * A description of the notification type\n     */\n    notificationTypeDescription: string | null | undefined;\n\n    notificationCategory: NotificationCategory | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class NotificationUpdateRequest {\n    /**\n     * List of notification ids to perform the action on <span class='property-internal'>Cannot be Empty</span> <span class='property-internal'>Required (defined)</span>\n     */\n    notificationIds: Array<number> | null | undefined;\n\n    /**\n     * Action to perform Unread marks all notifications in the list as unread Read marks all notifications in the list as read Archived marks all notifications in the list as archived Unarchived marks all notifications in the list as unarchived <span class='property-internal'>One of 'Read', 'Unread', 'Archived', 'Unarchived'</span> <span class='property-internal'>Required</span>\n     */\n    action: string | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ObservationMethodChild {\n    /**\n     * Observation method identifier\n     */\n    observationMethodId: number | null | undefined;\n\n    /**\n     * Observation method code\n     */\n    observationMethodCode: string | null | undefined;\n\n    /**\n     * Observation method name: Automatic, Manual, Estimated, Simulated, Accrual, or Adjustment\n     */\n    observationMethodInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ObservationRule {\n    /**\n     * The observation rule identifier\n     */\n    observationRuleId: number | null | undefined;\n\n    /**\n     * The observation rule code\n     */\n    observationRuleCode: string | null | undefined;\n\n    /**\n     * The observation rule info\n     */\n    observationRuleInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ObservationType {\n    /**\n     * \n     */\n    observationTypeId: number | null | undefined;\n\n    /**\n     * \n     */\n    credit: number | null | undefined;\n\n    /**\n     * \n     */\n    timeOfUse: number | null | undefined;\n\n    /**\n     * \n     */\n    creation: number | null | undefined;\n\n    /**\n     * \n     */\n    noun: number | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Must be between 0 and 16 characters</span>\n     */\n    observationTypeCode: string | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Must be between 0 and 32 characters</span>\n     */\n    observationTypeInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ObservationTypeChild {\n    /**\n     * The identifier for the observation type's noun\n     */\n    nounId: number | null | undefined;\n\n    /**\n     * The observation type's noun code\n     */\n    nounCode: string | null | undefined;\n\n    /**\n     * Indicates the type of credit for the observation type. Possible values include: 1 (Credit), 2 (Debit), 3 (Ignore)\n     */\n    credit: number | null | undefined;\n\n    /**\n     * The observation type identifier\n     */\n    observationTypeId: number | null | undefined;\n\n    /**\n     * The observation type code\n     */\n    observationTypeCode: string | null | undefined;\n\n    /**\n     * The observation type info\n     */\n    observationTypeInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ObservationTypeChildBase {\n    /**\n     * The observation type identifier\n     */\n    observationTypeId: number | null | undefined;\n\n    /**\n     * The observation type code\n     */\n    observationTypeCode: string | null | undefined;\n\n    /**\n     * The observation type info\n     */\n    observationTypeInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { IOutputFormatter } from './iOutputFormatter';\n\n\nexport class OkObjectResult {\n    /**\n     *  <span class='property-internal'>Required (defined)</span>\n     */\n    value: any | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Required (defined)</span>\n     */\n    formatters: Array<IOutputFormatter> | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Required (defined)</span>\n     */\n    contentTypes: Array<string> | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Required (defined)</span>\n     */\n    declaredType: string | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Required (defined)</span>\n     */\n    statusCode: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class OkResult {\n    /**\n     * \n     */\n    statusCode: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class OptionalUpdateNullableDateOnly {\n    /**\n     * The value to save during update Should be a date only with no time element If null is passed as a value and update is true it will be saved to the database <span class='property-internal'>Required (defined)</span>\n     */\n    value: Date | null | undefined;\n\n    /**\n     * Should the value be saved This is used to optionally update certain fields during a PUT request <span class='property-internal'>Required (defined)</span>\n     */\n    update: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class OptionalUpdateNullableDecimal {\n    /**\n     * The value to save during update If null is passed as a value and update is true it will be saved to the database\n     */\n    value: number | null | undefined;\n\n    /**\n     * Should the value be saved This is used to optionally update certain fields during a PUT request\n     */\n    update: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class OptionalUpdateNullableInt32 {\n    /**\n     * The value to save during update If null is passed as a value and update is true it will be saved to the database\n     */\n    value: number | null | undefined;\n\n    /**\n     * Should the value be saved This is used to optionally update certain fields during a PUT request\n     */\n    update: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class OptionalUpdateString {\n    /**\n     * The value to save during update If null is passed as a value and update is true it will be saved to the database\n     */\n    value: string | null | undefined;\n\n    /**\n     * Should the value be saved This is used to optionally update certain fields during a PUT request\n     */\n    update: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class OtherSavingsCategory {\n    /**\n     * Other savings category identifier\n     */\n    otherSavingsCategoryId: number | null | undefined;\n\n    /**\n     * Other savings category name\n     */\n    otherSavingsCategoryInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class OtherSavingsCategoryRequest {\n    /**\n     * Other savings category name\n     */\n    otherSavingsCategoryInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class OtherSavingsRequest {\n    /**\n     * Other savings type Possible values are: one-time, continuous and recurring <span class='property-internal'>Required</span>\n     */\n    frequency: string | null ;\n\n    /**\n     * Other savings category identifier <span class='property-internal'>Required</span>\n     */\n    otherSavingsCategoryId: number | null ;\n\n    /**\n     * Description <span class='property-internal'>Required</span>\n     */\n    description: string | null ;\n\n    /**\n     * Other savings start period <span class='property-internal'>Required</span>\n     */\n    startPeriod: number | null ;\n\n    /**\n     * Other savings end period <span class='property-internal'>Required when frequency is set to continuous, or recurring, case sensitive.</span>\n     */\n    endPeriod: number | null | undefined;\n\n    /**\n     * Month in which the other savings should begin This should only be set when the other savings type is recurring <span class='property-internal'>Required when frequency is set to recurring, case sensitive.</span>\n     */\n    annualCycleStartMonth: number | null | undefined;\n\n    /**\n     * Month in which the other savings should end This should only be set when the other savings type is recurring <span class='property-internal'>Required when frequency is set to recurring, case sensitive.</span>\n     */\n    annualCycleEndMonth: number | null | undefined;\n\n    /**\n     * Amount saved <span class='property-internal'>Required</span>\n     */\n    value: number | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { OtherSavingsCategory } from './otherSavingsCategory';\nimport { UnitChild } from './unitChild';\nimport { UserChild } from './userChild';\n\n\nexport class OtherSavingsResponse {\n    /**\n     * Other savings identifier\n     */\n    otherSavingsId: number | null | undefined;\n\n    /**\n     * Other savings frequency Possible values are: one-time, continuous, and recurring\n     */\n    frequency: string | null | undefined;\n\n    otherSavingsCategory: OtherSavingsCategory | null | undefined;\n\n    /**\n     * Description\n     */\n    description: string | null | undefined;\n\n    /**\n     * Begin period for the other savings\n     */\n    startPeriod: number | null | undefined;\n\n    /**\n     * End period for the other savings\n     */\n    endPeriod: number | null | undefined;\n\n    /**\n     * Month the other savings should begin This is only set when the other savings type is recurring\n     */\n    annnualCycleStartMonth: number | null | undefined;\n\n    /**\n     * Month the other savings should end This is only set when the other savings type is recurring\n     */\n    annualCycleEndMonth: number | null | undefined;\n\n    /**\n     * Amount saved\n     */\n    value: number | null | undefined;\n\n    createdBy: UserChild | null | undefined;\n\n    /**\n     * Create date\n     */\n    createdDate: Date | null | undefined;\n\n    modifiedBy: UserChild | null | undefined;\n\n    /**\n     * Last modified date\n     */\n    modifiedDate: Date | null | undefined;\n\n    costUnit: UnitChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class OutlierSeverityChild {\n    /**\n     * The integer that represents the severity of the outlier Values: 1, 2, 3, or 4\n     */\n    outlierSeverity: number | null | undefined;\n\n    /**\n     * The information regarding the current outlier severity Values: 1 = Severe, 2 = High, 3 = Moderate, 4 = Cannot be determined Severe - Actual value is 1, standard deviation > 3.0 on the high side or > 5.0 on the low side High - Actual value is 2, standard deviation > 2.0 high and > 4.0 low Moderate - Actual value is 3, standard deviation > 1.5 high and > 3.0 low Not Classified - It is not one of Severe, High, Low or the model could not be determined\n     */\n    outlierSeverityInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { ValueWithUnit } from './valueWithUnit';\n\n\n/**\n * General purpose period comparison DTO\n */\nexport class PeriodComparison {\n    /**\n     * The date for the current period of data\n     */\n    currentPeriod: number | null | undefined;\n\n    /**\n     * The date for the previous period of data\n     */\n    previousPeriod: number | null | undefined;\n\n    currentValue: ValueWithUnit | null | undefined;\n\n    previousValue: ValueWithUnit | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\n/**\n * General purpose period range DTO\n */\nexport class PeriodRange {\n    /**\n     * The start period for the range\n     */\n    startPeriod: number | null | undefined;\n\n    /**\n     * The end period for the range\n     */\n    endPeriod: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PeriodRange } from './periodRange';\n\n\n/**\n * General purpose period range comparison DTO\n */\nexport class PeriodRangeComparison {\n    currentPeriodRange: PeriodRange | null | undefined;\n\n    previousPeriodRange: PeriodRange | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PeriodComparison } from './periodComparison';\nimport { PeriodRange } from './periodRange';\nimport { ValueWithUnit } from './valueWithUnit';\n\n\nexport class PeriodRangeComparisonDetailed {\n    /**\n     * The data details\n     */\n    dataDetails: Array<PeriodComparison> | null | undefined;\n\n    currentPeriodRange: PeriodRange | null | undefined;\n\n    previousPeriodRange: PeriodRange | null | undefined;\n\n    currentValue: ValueWithUnit | null | undefined;\n\n    previousValue: ValueWithUnit | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class PermissionProduct {\n    /**\n     * \n     */\n    productId: number | null | undefined;\n\n    /**\n     * \n     */\n    productCode: string | null | undefined;\n\n    /**\n     * \n     */\n    productInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AccountingSettings } from './accountingSettings';\nimport { Accounts } from './accounts';\nimport { AccountsModule } from './accountsModule';\nimport { AccountsModuleActualData } from './accountsModuleActualData';\nimport { AccrualSettings } from './accrualSettings';\nimport { AllInstalledReports } from './allInstalledReports';\nimport { ApplicationSettings } from './applicationSettings';\nimport { ApproveBills } from './approveBills';\nimport { BaselineEngine } from './baselineEngine';\nimport { BillCAPture } from './billCAPture';\nimport { BillListAdministrator } from './billListAdministrator';\nimport { BillWorkflowSettings } from './billWorkflowSettings';\nimport { BillsAndBatches } from './billsAndBatches';\nimport { BillsModule } from './billsModule';\nimport { BudgetsAndBudgetVersions } from './budgetsAndBudgetVersions';\nimport { BuildingAndMeterGroups } from './buildingAndMeterGroups';\nimport { BuildingsAndMetersModule } from './buildingsAndMetersModule';\nimport { BuildingsAndMetersModuleActualData } from './buildingsAndMetersModuleActualData';\nimport { BuildingsAndMetersModuleBudgets } from './buildingsAndMetersModuleBudgets';\nimport { BuildingsAndMetersModuleCalendarizedData } from './buildingsAndMetersModuleCalendarizedData';\nimport { BuildingsAndMetersModuleMeterIntervalData } from './buildingsAndMetersModuleMeterIntervalData';\nimport { BuildingsAndMetersModuleNormalizedData } from './buildingsAndMetersModuleNormalizedData';\nimport { BuildingsAndMetersModuleSavings } from './buildingsAndMetersModuleSavings';\nimport { BuildingsAndMetersModuleSustainability } from './buildingsAndMetersModuleSustainability';\nimport { BuildingsAndOrganizations } from './buildingsAndOrganizations';\nimport { ChargebackReversals } from './chargebackReversals';\nimport { Chargebacks } from './chargebacks';\nimport { ChargebacksModule } from './chargebacksModule';\nimport { Collections } from './collections';\nimport { CostCenters } from './costCenters';\nimport { DashboardAdministrator } from './dashboardAdministrator';\nimport { DashboardAndMapsModule } from './dashboardAndMapsModule';\nimport { DistributedReportsSettings } from './distributedReportsSettings';\nimport { ENERGYSTARSubmissions } from './eNERGYSTARSubmissions';\nimport { EmissionsSources } from './emissionsSources';\nimport { EmissionsSourcesModule } from './emissionsSourcesModule';\nimport { EnergyManagerModule } from './energyManagerModule';\nimport { ExportBills } from './exportBills';\nimport { ExportHold } from './exportHold';\nimport { FacilityProjects } from './facilityProjects';\nimport { FlaggedItems } from './flaggedItems';\nimport { GlobalCostAvoidanceSettings } from './globalCostAvoidanceSettings';\nimport { GreenhouseGasAdministrator } from './greenhouseGasAdministrator';\nimport { GroupsAndBenchmarksModule } from './groupsAndBenchmarksModule';\nimport { IntervalData } from './intervalData';\nimport { IntervalDataAnalysis } from './intervalDataAnalysis';\nimport { IntervalDataRollup } from './intervalDataRollup';\nimport { LicenseFeatureAccountingExport } from './licenseFeatureAccountingExport';\nimport { LicenseFeatureAccrualBills } from './licenseFeatureAccrualBills';\nimport { LicenseFeatureBillCAPtureManagedServices } from './licenseFeatureBillCAPtureManagedServices';\nimport { LicenseFeatureBillCapturePostPay } from './licenseFeatureBillCapturePostPay';\nimport { LicenseFeatureBillCapturePrePay } from './licenseFeatureBillCapturePrePay';\nimport { LicenseFeatureBudgets } from './licenseFeatureBudgets';\nimport { LicenseFeatureCarbonHub } from './licenseFeatureCarbonHub';\nimport { LicenseFeatureChargebacks } from './licenseFeatureChargebacks';\nimport { LicenseFeatureCostAvoidance } from './licenseFeatureCostAvoidance';\nimport { LicenseFeatureCustomBenchmarks } from './licenseFeatureCustomBenchmarks';\nimport { LicenseFeatureEnergyCAPPayments } from './licenseFeatureEnergyCAPPayments';\nimport { LicenseFeatureGhg } from './licenseFeatureGhg';\nimport { LicenseFeatureGhgPremium } from './licenseFeatureGhgPremium';\nimport { LicenseFeatureIntervalData } from './licenseFeatureIntervalData';\nimport { LicenseFeatureIntervalDataAnalysis } from './licenseFeatureIntervalDataAnalysis';\nimport { LicenseFeatureLegacyGHG } from './licenseFeatureLegacyGHG';\nimport { LicenseFeatureNonEnglishBills } from './licenseFeatureNonEnglishBills';\nimport { LicenseFeatureReportDesigner } from './licenseFeatureReportDesigner';\nimport { LicenseFeatureReportDistribution } from './licenseFeatureReportDistribution';\nimport { LicenseFeatureUIDI } from './licenseFeatureUIDI';\nimport { LicenseFeatureVendorManagementServices } from './licenseFeatureVendorManagementServices';\nimport { ManuallyAdjustSavings } from './manuallyAdjustSavings';\nimport { MeterSavingsSettings } from './meterSavingsSettings';\nimport { Meters } from './meters';\nimport { MoveAccountsBetweenVendors } from './moveAccountsBetweenVendors';\nimport { MoveExistingBills } from './moveExistingBills';\nimport { NormalizationSettings } from './normalizationSettings';\nimport { PublicDashboardsOrMaps } from './publicDashboardsOrMaps';\nimport { RateSchedules } from './rateSchedules';\nimport { Records } from './records';\nimport { RecordsListAdministrator } from './recordsListAdministrator';\nimport { RecordsModule } from './recordsModule';\nimport { ReportAdministrator } from './reportAdministrator';\nimport { ReportGroups } from './reportGroups';\nimport { Reports } from './reports';\nimport { ReportsModule } from './reportsModule';\nimport { ResetUserPasswords } from './resetUserPasswords';\nimport { Roles } from './roles';\nimport { SavingsAdjustments } from './savingsAdjustments';\nimport { SavingsEngine } from './savingsEngine';\nimport { SendNotifications } from './sendNotifications';\nimport { SharedBillLists } from './sharedBillLists';\nimport { SharedDashboardsOrMaps } from './sharedDashboardsOrMaps';\nimport { SharedRecordsLists } from './sharedRecordsLists';\nimport { SharedReports } from './sharedReports';\nimport { UnitSystemSettings } from './unitSystemSettings';\nimport { UpdateApprovedBills } from './updateApprovedBills';\nimport { UpdateUnitsOnExistingBills } from './updateUnitsOnExistingBills';\nimport { UsersAndRoles } from './usersAndRoles';\nimport { UsersAndUserGroups } from './usersAndUserGroups';\nimport { Vendors } from './vendors';\nimport { VendorsAndRatesModule } from './vendorsAndRatesModule';\nimport { WeatherSettings } from './weatherSettings';\n\n\nexport class Permissions {\n    licenseFeatureAccountingExport: LicenseFeatureAccountingExport | null | undefined;\n\n    licenseFeatureAccrualBills: LicenseFeatureAccrualBills | null | undefined;\n\n    licenseFeatureChargebacks: LicenseFeatureChargebacks | null | undefined;\n\n    licenseFeatureCostAvoidance: LicenseFeatureCostAvoidance | null | undefined;\n\n    licenseFeatureIntervalDataAnalysis: LicenseFeatureIntervalDataAnalysis | null | undefined;\n\n    licenseFeatureReportDesigner: LicenseFeatureReportDesigner | null | undefined;\n\n    licenseFeatureCustomBenchmarks: LicenseFeatureCustomBenchmarks | null | undefined;\n\n    licenseFeatureReportDistribution: LicenseFeatureReportDistribution | null | undefined;\n\n    licenseFeatureGhg: LicenseFeatureGhg | null | undefined;\n\n    licenseFeatureGhgPremium: LicenseFeatureGhgPremium | null | undefined;\n\n    licenseFeatureLegacyGHG: LicenseFeatureLegacyGHG | null | undefined;\n\n    licenseFeatureBudgets: LicenseFeatureBudgets | null | undefined;\n\n    licenseFeatureEnergyCAPPayments: LicenseFeatureEnergyCAPPayments | null | undefined;\n\n    licenseFeatureBillCAPtureManagedServices: LicenseFeatureBillCAPtureManagedServices | null | undefined;\n\n    licenseFeatureCarbonHub: LicenseFeatureCarbonHub | null | undefined;\n\n    licenseFeatureIntervalData: LicenseFeatureIntervalData | null | undefined;\n\n    licenseFeatureBillCapturePrePay: LicenseFeatureBillCapturePrePay | null | undefined;\n\n    licenseFeatureBillCapturePostPay: LicenseFeatureBillCapturePostPay | null | undefined;\n\n    licenseFeatureNonEnglishBills: LicenseFeatureNonEnglishBills | null | undefined;\n\n    licenseFeatureVendorManagementServices: LicenseFeatureVendorManagementServices | null | undefined;\n\n    licenseFeatureUIdI: LicenseFeatureUIDI | null | undefined;\n\n    accountingSettings: AccountingSettings | null | undefined;\n\n    accounts: Accounts | null | undefined;\n\n    accountsModule: AccountsModule | null | undefined;\n\n    accrualSettings: AccrualSettings | null | undefined;\n\n    costCenters: CostCenters | null | undefined;\n\n    moveAccountsBetweenVendors: MoveAccountsBetweenVendors | null | undefined;\n\n    applicationSettings: ApplicationSettings | null | undefined;\n\n    approveBills: ApproveBills | null | undefined;\n\n    billWorkflowSettings: BillWorkflowSettings | null | undefined;\n\n    billsAndBatches: BillsAndBatches | null | undefined;\n\n    exportBills: ExportBills | null | undefined;\n\n    exportHold: ExportHold | null | undefined;\n\n    moveExistingBills: MoveExistingBills | null | undefined;\n\n    sharedBillLists: SharedBillLists | null | undefined;\n\n    unitSystemSettings: UnitSystemSettings | null | undefined;\n\n    updateApprovedBills: UpdateApprovedBills | null | undefined;\n\n    updateUnitsOnExistingBills: UpdateUnitsOnExistingBills | null | undefined;\n\n    budgetsAndBudgetVersions: BudgetsAndBudgetVersions | null | undefined;\n\n    chargebacksModule: ChargebacksModule | null | undefined;\n\n    chargebacks: Chargebacks | null | undefined;\n\n    chargebackReversals: ChargebackReversals | null | undefined;\n\n    meterSavingsSettings: MeterSavingsSettings | null | undefined;\n\n    savingsAdjustments: SavingsAdjustments | null | undefined;\n\n    manuallyAdjustSavings: ManuallyAdjustSavings | null | undefined;\n\n    savingsEngine: SavingsEngine | null | undefined;\n\n    baselineEngine: BaselineEngine | null | undefined;\n\n    globalCostAvoidanceSettings: GlobalCostAvoidanceSettings | null | undefined;\n\n    dashboardAndMapsModule: DashboardAndMapsModule | null | undefined;\n\n    dashboardAdministrator: DashboardAdministrator | null | undefined;\n\n    publicDashboardsOrMaps: PublicDashboardsOrMaps | null | undefined;\n\n    sharedDashboardsOrMaps: SharedDashboardsOrMaps | null | undefined;\n\n    buildingsAndMetersModule: BuildingsAndMetersModule | null | undefined;\n\n    groupsAndBenchmarksModule: GroupsAndBenchmarksModule | null | undefined;\n\n    buildingAndMeterGroups: BuildingAndMeterGroups | null | undefined;\n\n    buildingsAndOrganizations: BuildingsAndOrganizations | null | undefined;\n\n    intervalData: IntervalData | null | undefined;\n\n    intervalDataAnalysis: IntervalDataAnalysis | null | undefined;\n\n    energystarSubmissions: ENERGYSTARSubmissions | null | undefined;\n\n    facilityProjects: FacilityProjects | null | undefined;\n\n    greenhouseGasAdministrator: GreenhouseGasAdministrator | null | undefined;\n\n    intervalDataRollup: IntervalDataRollup | null | undefined;\n\n    meters: Meters | null | undefined;\n\n    normalizationSettings: NormalizationSettings | null | undefined;\n\n    weatherSettings: WeatherSettings | null | undefined;\n\n    reportsModule: ReportsModule | null | undefined;\n\n    distributedReportsSettings: DistributedReportsSettings | null | undefined;\n\n    reportAdministrator: ReportAdministrator | null | undefined;\n\n    reportGroups: ReportGroups | null | undefined;\n\n    sharedReports: SharedReports | null | undefined;\n\n    reports: Reports | null | undefined;\n\n    resetUserPasswords: ResetUserPasswords | null | undefined;\n\n    usersAndUserGroups: UsersAndUserGroups | null | undefined;\n\n    vendorsAndRatesModule: VendorsAndRatesModule | null | undefined;\n\n    rateSchedules: RateSchedules | null | undefined;\n\n    vendors: Vendors | null | undefined;\n\n    flaggedItems: FlaggedItems | null | undefined;\n\n    billListAdministrator: BillListAdministrator | null | undefined;\n\n    allInstalledReports: AllInstalledReports | null | undefined;\n\n    sendNotifications: SendNotifications | null | undefined;\n\n    buildingsAndMetersModuleActualData: BuildingsAndMetersModuleActualData | null | undefined;\n\n    buildingsAndMetersModuleCalendarizedData: BuildingsAndMetersModuleCalendarizedData | null | undefined;\n\n    buildingsAndMetersModuleNormalizedData: BuildingsAndMetersModuleNormalizedData | null | undefined;\n\n    buildingsAndMetersModuleSavings: BuildingsAndMetersModuleSavings | null | undefined;\n\n    buildingsAndMetersModuleMeterIntervalData: BuildingsAndMetersModuleMeterIntervalData | null | undefined;\n\n    buildingsAndMetersModuleSustainability: BuildingsAndMetersModuleSustainability | null | undefined;\n\n    buildingsAndMetersModuleBudgets: BuildingsAndMetersModuleBudgets | null | undefined;\n\n    accountsModuleActualData: AccountsModuleActualData | null | undefined;\n\n    billsModule: BillsModule | null | undefined;\n\n    roles: Roles | null | undefined;\n\n    usersAndRoles: UsersAndRoles | null | undefined;\n\n    emissionsSourcesModule: EmissionsSourcesModule | null | undefined;\n\n    collections: Collections | null | undefined;\n\n    emissionsSources: EmissionsSources | null | undefined;\n\n    recordsModule: RecordsModule | null | undefined;\n\n    records: Records | null | undefined;\n\n    sharedRecordsLists: SharedRecordsLists | null | undefined;\n\n    recordsListAdministrator: RecordsListAdministrator | null | undefined;\n\n    billCAPture: BillCAPture | null | undefined;\n\n    energyManagerModule: EnergyManagerModule | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AccountingSettingsClassPermission } from './accountingSettingsClassPermission';\nimport { AccountsClassPermission } from './accountsClassPermission';\nimport { AccountsModuleActualDataClassPermission } from './accountsModuleActualDataClassPermission';\nimport { AccountsModuleClassPermission } from './accountsModuleClassPermission';\nimport { AccrualSettingsClassPermission } from './accrualSettingsClassPermission';\nimport { AllInstalledReportsClassPermission } from './allInstalledReportsClassPermission';\nimport { ApplicationSettingsClassPermission } from './applicationSettingsClassPermission';\nimport { ApproveBillsClassPermission } from './approveBillsClassPermission';\nimport { BaselineEngineClassPermission } from './baselineEngineClassPermission';\nimport { BillCAPtureClassPermission } from './billCAPtureClassPermission';\nimport { BillListAdministratorClassPermission } from './billListAdministratorClassPermission';\nimport { BillWorkflowSettingsClassPermission } from './billWorkflowSettingsClassPermission';\nimport { BillsAndBatchesClassPermission } from './billsAndBatchesClassPermission';\nimport { BillsModuleClassPermission } from './billsModuleClassPermission';\nimport { BudgetsAndBudgetVersionsClassPermission } from './budgetsAndBudgetVersionsClassPermission';\nimport { BuildingAndMeterGroupsClassPermission } from './buildingAndMeterGroupsClassPermission';\nimport { BuildingsAndMetersModuleActualDataClassPermission } from './buildingsAndMetersModuleActualDataClassPermission';\nimport { BuildingsAndMetersModuleBudgetsClassPermission } from './buildingsAndMetersModuleBudgetsClassPermission';\nimport { BuildingsAndMetersModuleCalendarizedDataClassPermission } from './buildingsAndMetersModuleCalendarizedDataClassPermission';\nimport { BuildingsAndMetersModuleClassPermission } from './buildingsAndMetersModuleClassPermission';\nimport { BuildingsAndMetersModuleMeterIntervalDataClassPermission } from './buildingsAndMetersModuleMeterIntervalDataClassPermission';\nimport { BuildingsAndMetersModuleNormalizedDataClassPermission } from './buildingsAndMetersModuleNormalizedDataClassPermission';\nimport { BuildingsAndMetersModuleSavingsClassPermission } from './buildingsAndMetersModuleSavingsClassPermission';\nimport { BuildingsAndMetersModuleSustainabilityClassPermission } from './buildingsAndMetersModuleSustainabilityClassPermission';\nimport { BuildingsAndOrganizationsClassPermission } from './buildingsAndOrganizationsClassPermission';\nimport { ChargebackReversalsClassPermission } from './chargebackReversalsClassPermission';\nimport { ChargebacksClassPermission } from './chargebacksClassPermission';\nimport { ChargebacksModuleClassPermission } from './chargebacksModuleClassPermission';\nimport { CollectionsClassPermission } from './collectionsClassPermission';\nimport { CostCentersClassPermission } from './costCentersClassPermission';\nimport { DashboardAdministratorClassPermission } from './dashboardAdministratorClassPermission';\nimport { DashboardAndMapsModuleClassPermission } from './dashboardAndMapsModuleClassPermission';\nimport { DistributedReportsSettingsClassPermission } from './distributedReportsSettingsClassPermission';\nimport { ENERGYSTARSubmissionsClassPermission } from './eNERGYSTARSubmissionsClassPermission';\nimport { EmissionsSourcesClassPermission } from './emissionsSourcesClassPermission';\nimport { EmissionsSourcesModuleClassPermission } from './emissionsSourcesModuleClassPermission';\nimport { EnergyManagerModuleClassPermission } from './energyManagerModuleClassPermission';\nimport { ExportBillsClassPermission } from './exportBillsClassPermission';\nimport { ExportHoldClassPermission } from './exportHoldClassPermission';\nimport { FacilityProjectsClassPermission } from './facilityProjectsClassPermission';\nimport { FlaggedItemsClassPermission } from './flaggedItemsClassPermission';\nimport { GlobalCostAvoidanceSettingsClassPermission } from './globalCostAvoidanceSettingsClassPermission';\nimport { GreenhouseGasAdministratorClassPermission } from './greenhouseGasAdministratorClassPermission';\nimport { GroupsAndBenchmarksModuleClassPermission } from './groupsAndBenchmarksModuleClassPermission';\nimport { IntervalDataAnalysisClassPermission } from './intervalDataAnalysisClassPermission';\nimport { IntervalDataClassPermission } from './intervalDataClassPermission';\nimport { IntervalDataRollupClassPermission } from './intervalDataRollupClassPermission';\nimport { ManuallyAdjustSavingsClassPermission } from './manuallyAdjustSavingsClassPermission';\nimport { MeterSavingsSettingsClassPermission } from './meterSavingsSettingsClassPermission';\nimport { MetersClassPermission } from './metersClassPermission';\nimport { MoveAccountsBetweenVendorsClassPermission } from './moveAccountsBetweenVendorsClassPermission';\nimport { MoveExistingBillsClassPermission } from './moveExistingBillsClassPermission';\nimport { NormalizationSettingsClassPermission } from './normalizationSettingsClassPermission';\nimport { PublicDashboardsOrMapsClassPermission } from './publicDashboardsOrMapsClassPermission';\nimport { RateSchedulesClassPermission } from './rateSchedulesClassPermission';\nimport { RecordsClassPermission } from './recordsClassPermission';\nimport { RecordsListAdministratorClassPermission } from './recordsListAdministratorClassPermission';\nimport { RecordsModuleClassPermission } from './recordsModuleClassPermission';\nimport { ReportAdministratorClassPermission } from './reportAdministratorClassPermission';\nimport { ReportGroupsClassPermission } from './reportGroupsClassPermission';\nimport { ReportsClassPermission } from './reportsClassPermission';\nimport { ReportsModuleClassPermission } from './reportsModuleClassPermission';\nimport { ResetUserPasswordsClassPermission } from './resetUserPasswordsClassPermission';\nimport { RolesClassPermission } from './rolesClassPermission';\nimport { SavingsAdjustmentsClassPermission } from './savingsAdjustmentsClassPermission';\nimport { SavingsEngineClassPermission } from './savingsEngineClassPermission';\nimport { SendNotificationsClassPermission } from './sendNotificationsClassPermission';\nimport { SharedBillListsClassPermission } from './sharedBillListsClassPermission';\nimport { SharedDashboardsOrMapsClassPermission } from './sharedDashboardsOrMapsClassPermission';\nimport { SharedRecordsListsClassPermission } from './sharedRecordsListsClassPermission';\nimport { SharedReportsClassPermission } from './sharedReportsClassPermission';\nimport { UnitSystemSettingsClassPermission } from './unitSystemSettingsClassPermission';\nimport { UpdateApprovedBillsClassPermission } from './updateApprovedBillsClassPermission';\nimport { UpdateUnitsOnExistingBillsClassPermission } from './updateUnitsOnExistingBillsClassPermission';\nimport { UsersAndRolesClassPermission } from './usersAndRolesClassPermission';\nimport { UsersAndUserGroupsClassPermission } from './usersAndUserGroupsClassPermission';\nimport { VendorsAndRatesModuleClassPermission } from './vendorsAndRatesModuleClassPermission';\nimport { VendorsClassPermission } from './vendorsClassPermission';\nimport { WeatherSettingsClassPermission } from './weatherSettingsClassPermission';\n\n\nexport class PermissionsRequest {\n    accountingSettings: AccountingSettingsClassPermission | null | undefined;\n\n    accounts: AccountsClassPermission | null | undefined;\n\n    accountsModule: AccountsModuleClassPermission | null | undefined;\n\n    accrualSettings: AccrualSettingsClassPermission | null | undefined;\n\n    costCenters: CostCentersClassPermission | null | undefined;\n\n    moveAccountsBetweenVendors: MoveAccountsBetweenVendorsClassPermission | null | undefined;\n\n    applicationSettings: ApplicationSettingsClassPermission | null | undefined;\n\n    approveBills: ApproveBillsClassPermission | null | undefined;\n\n    billWorkflowSettings: BillWorkflowSettingsClassPermission | null | undefined;\n\n    billsAndBatches: BillsAndBatchesClassPermission | null | undefined;\n\n    exportBills: ExportBillsClassPermission | null | undefined;\n\n    exportHold: ExportHoldClassPermission | null | undefined;\n\n    moveExistingBills: MoveExistingBillsClassPermission | null | undefined;\n\n    sharedBillLists: SharedBillListsClassPermission | null | undefined;\n\n    unitSystemSettings: UnitSystemSettingsClassPermission | null | undefined;\n\n    updateApprovedBills: UpdateApprovedBillsClassPermission | null | undefined;\n\n    updateUnitsOnExistingBills: UpdateUnitsOnExistingBillsClassPermission | null | undefined;\n\n    budgetsAndBudgetVersions: BudgetsAndBudgetVersionsClassPermission | null | undefined;\n\n    chargebacksModule: ChargebacksModuleClassPermission | null | undefined;\n\n    chargebacks: ChargebacksClassPermission | null | undefined;\n\n    chargebackReversals: ChargebackReversalsClassPermission | null | undefined;\n\n    meterSavingsSettings: MeterSavingsSettingsClassPermission | null | undefined;\n\n    savingsAdjustments: SavingsAdjustmentsClassPermission | null | undefined;\n\n    manuallyAdjustSavings: ManuallyAdjustSavingsClassPermission | null | undefined;\n\n    savingsEngine: SavingsEngineClassPermission | null | undefined;\n\n    baselineEngine: BaselineEngineClassPermission | null | undefined;\n\n    globalCostAvoidanceSettings: GlobalCostAvoidanceSettingsClassPermission | null | undefined;\n\n    dashboardAndMapsModule: DashboardAndMapsModuleClassPermission | null | undefined;\n\n    dashboardAdministrator: DashboardAdministratorClassPermission | null | undefined;\n\n    publicDashboardsOrMaps: PublicDashboardsOrMapsClassPermission | null | undefined;\n\n    sharedDashboardsOrMaps: SharedDashboardsOrMapsClassPermission | null | undefined;\n\n    buildingsAndMetersModule: BuildingsAndMetersModuleClassPermission | null | undefined;\n\n    groupsAndBenchmarksModule: GroupsAndBenchmarksModuleClassPermission | null | undefined;\n\n    buildingAndMeterGroups: BuildingAndMeterGroupsClassPermission | null | undefined;\n\n    buildingsAndOrganizations: BuildingsAndOrganizationsClassPermission | null | undefined;\n\n    intervalData: IntervalDataClassPermission | null | undefined;\n\n    intervalDataAnalysis: IntervalDataAnalysisClassPermission | null | undefined;\n\n    energystarSubmissions: ENERGYSTARSubmissionsClassPermission | null | undefined;\n\n    facilityProjects: FacilityProjectsClassPermission | null | undefined;\n\n    greenhouseGasAdministrator: GreenhouseGasAdministratorClassPermission | null | undefined;\n\n    intervalDataRollup: IntervalDataRollupClassPermission | null | undefined;\n\n    meters: MetersClassPermission | null | undefined;\n\n    normalizationSettings: NormalizationSettingsClassPermission | null | undefined;\n\n    weatherSettings: WeatherSettingsClassPermission | null | undefined;\n\n    reportsModule: ReportsModuleClassPermission | null | undefined;\n\n    distributedReportsSettings: DistributedReportsSettingsClassPermission | null | undefined;\n\n    reportAdministrator: ReportAdministratorClassPermission | null | undefined;\n\n    reportGroups: ReportGroupsClassPermission | null | undefined;\n\n    sharedReports: SharedReportsClassPermission | null | undefined;\n\n    reports: ReportsClassPermission | null | undefined;\n\n    resetUserPasswords: ResetUserPasswordsClassPermission | null | undefined;\n\n    usersAndUserGroups: UsersAndUserGroupsClassPermission | null | undefined;\n\n    vendorsAndRatesModule: VendorsAndRatesModuleClassPermission | null | undefined;\n\n    rateSchedules: RateSchedulesClassPermission | null | undefined;\n\n    vendors: VendorsClassPermission | null | undefined;\n\n    flaggedItems: FlaggedItemsClassPermission | null | undefined;\n\n    billListAdministrator: BillListAdministratorClassPermission | null | undefined;\n\n    allInstalledReports: AllInstalledReportsClassPermission | null | undefined;\n\n    sendNotifications: SendNotificationsClassPermission | null | undefined;\n\n    buildingsAndMetersModuleActualData: BuildingsAndMetersModuleActualDataClassPermission | null | undefined;\n\n    buildingsAndMetersModuleCalendarizedData: BuildingsAndMetersModuleCalendarizedDataClassPermission | null | undefined;\n\n    buildingsAndMetersModuleNormalizedData: BuildingsAndMetersModuleNormalizedDataClassPermission | null | undefined;\n\n    buildingsAndMetersModuleMeterIntervalData: BuildingsAndMetersModuleMeterIntervalDataClassPermission | null | undefined;\n\n    buildingsAndMetersModuleSustainability: BuildingsAndMetersModuleSustainabilityClassPermission | null | undefined;\n\n    buildingsAndMetersModuleSavings: BuildingsAndMetersModuleSavingsClassPermission | null | undefined;\n\n    buildingsAndMetersModuleBudgets: BuildingsAndMetersModuleBudgetsClassPermission | null | undefined;\n\n    accountsModuleActualData: AccountsModuleActualDataClassPermission | null | undefined;\n\n    billsModule: BillsModuleClassPermission | null | undefined;\n\n    roles: RolesClassPermission | null | undefined;\n\n    emissionsSourcesModule: EmissionsSourcesModuleClassPermission | null | undefined;\n\n    collections: CollectionsClassPermission | null | undefined;\n\n    emissionsSources: EmissionsSourcesClassPermission | null | undefined;\n\n    recordsModule: RecordsModuleClassPermission | null | undefined;\n\n    records: RecordsClassPermission | null | undefined;\n\n    sharedRecordsLists: SharedRecordsListsClassPermission | null | undefined;\n\n    recordsListAdministrator: RecordsListAdministratorClassPermission | null | undefined;\n\n    billCAPture: BillCAPtureClassPermission | null | undefined;\n\n    energyManagerModule: EnergyManagerModuleClassPermission | null | undefined;\n\n    usersAndRoles: UsersAndRolesClassPermission | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class PlaceCategoryRequest {\n    /**\n     * The place category info <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 32 characters</span>\n     */\n    placeGroupCategoryInfo: string | null ;\n\n    /**\n     * The place category code <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 32 characters</span>\n     */\n    placeGroupCategoryCode: string | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class PlaceCategoryResponse {\n    /**\n     * The place category identifier\n     */\n    placeGroupCategoryId: number | null | undefined;\n\n    /**\n     * The place category code\n     */\n    placeGroupCategoryCode: string | null | undefined;\n\n    /**\n     * The place category name\n     */\n    placeGroupCategoryInfo: string | null | undefined;\n\n    /**\n     * Is this category an automatically maintained one?\n     */\n    autoGroup: boolean | null | undefined;\n\n    /**\n     * Number of groups within this category\n     */\n    numberOfGroups: number | null | undefined;\n\n    /**\n     * Number of groups within this category with members the logged in can see\n     */\n    numberOfGroupsWithVisibleMembers: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PlaceTypeResponse } from './placeTypeResponse';\n\n\nexport class PlaceChild {\n    placeType: PlaceTypeResponse | null | undefined;\n\n    /**\n     * Tells whether or not the place's data is rolled up to its parents.\n     */\n    isDataRolledUp: boolean | null | undefined;\n\n    /**\n     * The place identifier\n     */\n    placeId: number | null | undefined;\n\n    /**\n     * The place code\n     */\n    placeCode: string | null | undefined;\n\n    /**\n     * The place info\n     */\n    placeInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { BillSplitPlaceSizeChild } from './billSplitPlaceSizeChild';\nimport { PlaceTypeResponse } from './placeTypeResponse';\n\n\nexport class PlaceChildWithFloorArea {\n    currentFloorArea: BillSplitPlaceSizeChild | null | undefined;\n\n    placeType: PlaceTypeResponse | null | undefined;\n\n    /**\n     * Tells whether or not the place's data is rolled up to its parents.\n     */\n    isDataRolledUp: boolean | null | undefined;\n\n    /**\n     * The place identifier\n     */\n    placeId: number | null | undefined;\n\n    /**\n     * The place code\n     */\n    placeCode: string | null | undefined;\n\n    /**\n     * The place info\n     */\n    placeInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PlaceChild } from './placeChild';\nimport { UnitChild } from './unitChild';\n\n\nexport class PlaceCost {\n    place: PlaceChild | null | undefined;\n\n    /**\n     * Total cost\n     */\n    totalCost: number | null | undefined;\n\n    /**\n     * Current Area\n     */\n    currentArea: number | null | undefined;\n\n    /**\n     * Current Area Units\n     */\n    currentAreaUnit: string | null | undefined;\n\n    /**\n     * Area Units\n     */\n    areaUnit: string | null | undefined;\n\n    /**\n     * Cost per area\n     */\n    costPerArea: number | null | undefined;\n\n    costUnit: UnitChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AddressChild } from './addressChild';\n\n\nexport class PlaceCreate {\n    /**\n     * The place code <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 32 characters</span> <span class='property-internal'>Not ROOT</span>\n     */\n    placeCode: string | null ;\n\n    /**\n     * The place info <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 50 characters</span>\n     */\n    placeInfo: string | null ;\n\n    /**\n     * The identifier for the parent of the place. The parent is the place directly above the current place on the buildings and meters tree <span class='property-internal'>Required</span> <span class='property-internal'>Topmost (Place)</span>\n     */\n    parentPlaceId: number | null ;\n\n    /**\n     * The identifier for the place type <span class='property-internal'>Required</span>\n     */\n    placeTypeId: number | null ;\n\n    /**\n     * The identifier for the place's primary use If this is a building and PrimaryUseId is null this will be set to Unknown (PrimaryUseId 55)\n     */\n    primaryUseId: number | null | undefined;\n\n    /**\n     * The date and time the place was built\n     */\n    buildDate: Date | null | undefined;\n\n    address: AddressChild | null | undefined;\n\n    /**\n     * The code for the weather station the place is assigned to <span class='property-internal'>Must be between 0 and 32 characters</span>\n     */\n    weatherStationCode: string | null | undefined;\n\n    /**\n     * A description of the place <span class='property-internal'>Must be between 0 and 4000 characters</span>\n     */\n    placeDescription: string | null | undefined;\n\n    /**\n     * The Time Zone Id for the place. If not present or set to null, the owner's default time zone will be used if the place is a site.\n     */\n    timeZoneId: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PeriodRange } from './periodRange';\nimport { PlaceDigestActualAndCalendarizedMonthlyResponseCommodityData } from './placeDigestActualAndCalendarizedMonthlyResponseCommodityData';\nimport { PlaceDigestActualAndCalendarizedMonthlyResponseResults } from './placeDigestActualAndCalendarizedMonthlyResponseResults';\nimport { PlaceDigestTargetComparisonMonthly } from './placeDigestTargetComparisonMonthly';\nimport { UnitChild } from './unitChild';\n\n\nexport class PlaceDigestActualAndCalendarizedMonthlyResponse {\n    /**\n     * The place code\n     */\n    placeCode: string | null | undefined;\n\n    /**\n     * The place info\n     */\n    placeInfo: string | null | undefined;\n\n    /**\n     * The place identifier\n     */\n    placeId: number | null | undefined;\n\n    periodRange: PeriodRange | null | undefined;\n\n    targetComparison: PlaceDigestTargetComparisonMonthly | null | undefined;\n\n    /**\n     * The date and time the data was updated\n     */\n    updated: Date | null | undefined;\n\n    globalUseUnit: UnitChild | null | undefined;\n\n    costUnit: UnitChild | null | undefined;\n\n    /**\n     * An array of monthly data per commodity\n     */\n    commodities: Array<PlaceDigestActualAndCalendarizedMonthlyResponseCommodityData> | null | undefined;\n\n    /**\n     * An array of monthly data\n     */\n    results: Array<PlaceDigestActualAndCalendarizedMonthlyResponseResults> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PlaceDigestActualAndCalendarizedMonthlyResponseCommodityResults } from './placeDigestActualAndCalendarizedMonthlyResponseCommodityResults';\nimport { PlaceDigestTargetComparisonMonthly } from './placeDigestTargetComparisonMonthly';\nimport { UnitChild } from './unitChild';\n\n\nexport class PlaceDigestActualAndCalendarizedMonthlyResponseCommodityData {\n    /**\n     * The commodity code\n     */\n    commodityCode: string | null | undefined;\n\n    /**\n     * The commodity info\n     */\n    commodityInfo: string | null | undefined;\n\n    /**\n     * The commodity identifier\n     */\n    commodityId: number | null | undefined;\n\n    /**\n     * The commodity category identifier\n     */\n    commodityCategoryId: number | null | undefined;\n\n    /**\n     * The commodity category name\n     */\n    commodityCategoryInfo: string | null | undefined;\n\n    commonUseUnit: UnitChild | null | undefined;\n\n    commonDemandUnit: UnitChild | null | undefined;\n\n    costUnit: UnitChild | null | undefined;\n\n    /**\n     * An array of commodity monthly data\n     */\n    results: Array<PlaceDigestActualAndCalendarizedMonthlyResponseCommodityResults> | null | undefined;\n\n    targetComparison: PlaceDigestTargetComparisonMonthly | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class PlaceDigestActualAndCalendarizedMonthlyResponseCommodityResults {\n    /**\n     * Calendar Period Name\n     */\n    periodName: string | null | undefined;\n\n    /**\n     * Calendar Period\n     */\n    calendarPeriod: number | null | undefined;\n\n    /**\n     * Calendar Year\n     */\n    calendarYear: number | null | undefined;\n\n    /**\n     * Fiscal Period\n     */\n    fiscalPeriod: number | null | undefined;\n\n    /**\n     * Fiscal Year\n     */\n    fiscalYear: number | null | undefined;\n\n    /**\n     * Total Cost\n     */\n    totalCost: number | null | undefined;\n\n    /**\n     * Cumulative Total Cost\n     */\n    cumulativeTotalCost: number | null | undefined;\n\n    /**\n     * Common Use\n     */\n    commonUse: number | null | undefined;\n\n    /**\n     * Cumulative Common Use\n     */\n    cumulativeCommonUse: number | null | undefined;\n\n    /**\n     * Common Use Unit Cost\n     */\n    commonUseUnitCost: number | null | undefined;\n\n    /**\n     * Global Use\n     */\n    globalUse: number | null | undefined;\n\n    /**\n     * \n     */\n    cumulativeGlobalUse: number | null | undefined;\n\n    /**\n     * Global Use Unit Cost\n     */\n    globalUseUnitCost: number | null | undefined;\n\n    /**\n     * Common Demand\n     */\n    commonDemand: number | null | undefined;\n\n    /**\n     * Common Demand Unit Cost\n     */\n    commonDemandUnitCost: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class PlaceDigestActualAndCalendarizedMonthlyResponseResults {\n    /**\n     * Calendar Period Name\n     */\n    periodName: string | null | undefined;\n\n    /**\n     * Calendar Period\n     */\n    calendarPeriod: number | null | undefined;\n\n    /**\n     * Calendar Year\n     */\n    calendarYear: number | null | undefined;\n\n    /**\n     * Fiscal Period\n     */\n    fiscalPeriod: number | null | undefined;\n\n    /**\n     * Fiscal Year\n     */\n    fiscalYear: number | null | undefined;\n\n    /**\n     * Total Cost\n     */\n    totalCost: number | null | undefined;\n\n    /**\n     * Cumulative Total Cost\n     */\n    cumulativeTotalCost: number | null | undefined;\n\n    /**\n     * Use\n     */\n    globalUse: number | null | undefined;\n\n    /**\n     * Cumulative Use\n     */\n    cumulativeGlobalUse: number | null | undefined;\n\n    /**\n     * Use Unit Cost\n     */\n    globalUseUnitCost: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PlaceDigestActualAndCalendarizedYearlyResponseCommodityData } from './placeDigestActualAndCalendarizedYearlyResponseCommodityData';\nimport { PlaceDigestActualAndCalendarizedYearlyResponseResults } from './placeDigestActualAndCalendarizedYearlyResponseResults';\nimport { PlaceDigestActualAndCalendarizedYearlyResponseTargetComparison } from './placeDigestActualAndCalendarizedYearlyResponseTargetComparison';\nimport { UnitChild } from './unitChild';\n\n\nexport class PlaceDigestActualAndCalendarizedYearlyResponse {\n    /**\n     * The place code\n     */\n    placeCode: string | null | undefined;\n\n    /**\n     * The place info\n     */\n    placeInfo: string | null | undefined;\n\n    /**\n     * The place identifier\n     */\n    placeId: number | null | undefined;\n\n    targetComparison: PlaceDigestActualAndCalendarizedYearlyResponseTargetComparison | null | undefined;\n\n    /**\n     * An array of yearly data\n     */\n    results: Array<PlaceDigestActualAndCalendarizedYearlyResponseResults> | null | undefined;\n\n    /**\n     * The date and time the data was updated\n     */\n    updated: Date | null | undefined;\n\n    globalUseUnit: UnitChild | null | undefined;\n\n    costUnit: UnitChild | null | undefined;\n\n    /**\n     * An array of yearly data per commodity\n     */\n    commodities: Array<PlaceDigestActualAndCalendarizedYearlyResponseCommodityData> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PlaceDigestActualAndCalendarizedYearlyResponseCommodityResults } from './placeDigestActualAndCalendarizedYearlyResponseCommodityResults';\nimport { PlaceDigestActualAndCalendarizedYearlyResponseTargetComparison } from './placeDigestActualAndCalendarizedYearlyResponseTargetComparison';\nimport { UnitChild } from './unitChild';\n\n\nexport class PlaceDigestActualAndCalendarizedYearlyResponseCommodityData {\n    /**\n     * The commodity code\n     */\n    commodityCode: string | null | undefined;\n\n    /**\n     * The commodity info\n     */\n    commodityInfo: string | null | undefined;\n\n    /**\n     * The commodity identifier\n     */\n    commodityId: number | null | undefined;\n\n    targetComparison: PlaceDigestActualAndCalendarizedYearlyResponseTargetComparison | null | undefined;\n\n    costUnit: UnitChild | null | undefined;\n\n    commonUseUnit: UnitChild | null | undefined;\n\n    commonDemandUnit: UnitChild | null | undefined;\n\n    /**\n     * An array of yearly data\n     */\n    results: Array<PlaceDigestActualAndCalendarizedYearlyResponseCommodityResults> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class PlaceDigestActualAndCalendarizedYearlyResponseCommodityResults {\n    /**\n     * year\n     */\n    year: string | null | undefined;\n\n    /**\n     * Total Cost\n     */\n    totalCost: number | null | undefined;\n\n    /**\n     * Common Use\n     */\n    commonUse: number | null | undefined;\n\n    /**\n     * Common Use Unit Cost\n     */\n    commonUseUnitCost: number | null | undefined;\n\n    /**\n     * Global Use\n     */\n    globalUse: number | null | undefined;\n\n    /**\n     * Global Use Unit Cost\n     */\n    globalUseUnitCost: number | null | undefined;\n\n    /**\n     * Common Demand\n     */\n    commonDemand: number | null | undefined;\n\n    /**\n     * Common Demand Unit Cost\n     */\n    commonDemandUnitCost: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class PlaceDigestActualAndCalendarizedYearlyResponseResults {\n    /**\n     * year\n     */\n    year: string | null | undefined;\n\n    /**\n     * Total Cost\n     */\n    totalCost: number | null | undefined;\n\n    /**\n     * Use\n     */\n    globalUse: number | null | undefined;\n\n    /**\n     * Use Unit Cost\n     */\n    globalUseUnitCost: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class PlaceDigestActualAndCalendarizedYearlyResponseTargetComparison {\n    /**\n     * Target year\n     */\n    targetYear: number | null | undefined;\n\n    /**\n     * Target label\n     */\n    targetLabel: string | null | undefined;\n\n    /**\n     * Total cost for the target year\n     */\n    totalCost: number | null | undefined;\n\n    /**\n     * Total cost for the target year up to the target period that corresponds to the current period\n     */\n    totalCostYtd: number | null | undefined;\n\n    /**\n     * Total use for the target year\n     */\n    globalUse: number | null | undefined;\n\n    /**\n     * Total use for the target year up to the target period that corresponds to the current period\n     */\n    globalUseYtd: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CommodityValueComparison } from './commodityValueComparison';\nimport { PeriodRange } from './periodRange';\nimport { UnitChild } from './unitChild';\nimport { ValueComparison } from './valueComparison';\n\n\n/**\n * Comparison data for a place\n */\nexport class PlaceDigestComparisonResponse {\n    currentPeriodRange: PeriodRange | null | undefined;\n\n    previousPeriodRange: PeriodRange | null | undefined;\n\n    intensity: ValueComparison | null | undefined;\n\n    total: ValueComparison | null | undefined;\n\n    /**\n     * Comparison values for each commodity\n     */\n    commodities: Array<CommodityValueComparison> | null | undefined;\n\n    floorAreaUnit: UnitChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PlaceDigestEnergyUseIntensityEuiCommodity } from './placeDigestEnergyUseIntensityEuiCommodity';\nimport { PlaceDigestEnergyUseIntensityEuiEnergyProject } from './placeDigestEnergyUseIntensityEuiEnergyProject';\nimport { UnitChild } from './unitChild';\n\n\nexport class PlaceDigestEnergyUseIntensity {\n    /**\n     * The calendar period name\n     */\n    periodName: string | null | undefined;\n\n    /**\n     * The calendar period number\n     */\n    calendarPeriod: number | null | undefined;\n\n    /**\n     * The calendar year\n     */\n    calendarYear: number | null | undefined;\n\n    /**\n     * The running average use per area for the prior 12 months\n     */\n    usePerAreaTrend: number | null | undefined;\n\n    globalUseUnit: UnitChild | null | undefined;\n\n    /**\n     * A list of energy projects for this building. To be listed, a project must end in this period.  Projects are only displayed at the building level, but not at the organization level\n     */\n    energyProjects: Array<PlaceDigestEnergyUseIntensityEuiEnergyProject> | null | undefined;\n\n    /**\n     * A breakdown of use per commodity\n     */\n    commodities: Array<PlaceDigestEnergyUseIntensityEuiCommodity> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class PlaceDigestEnergyUseIntensityEuiCommodity {\n    /**\n     * The commodity identifier\n     */\n    commodityId: number | null | undefined;\n\n    /**\n     * The commodity code\n     */\n    commodityCode: string | null | undefined;\n\n    /**\n     * The commodity info\n     */\n    commodityInfo: string | null | undefined;\n\n    /**\n     * The use for the commodity\n     */\n    use: number | null | undefined;\n\n    /**\n     * The percent of the building's energy used by the commodity\n     */\n    usePercent: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class PlaceDigestEnergyUseIntensityEuiEnergyProject {\n    /**\n     * The energy project identifier\n     */\n    energyProjectId: number | null | undefined;\n\n    /**\n     * The energy project code\n     */\n    energyProjectCode: string | null | undefined;\n\n    /**\n     * The energy project info\n     */\n    energyProjectInfo: string | null | undefined;\n\n    /**\n     * The energy project installation cost\n     */\n    installationCost: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PlaceDigestGHGYearlyResponseGHGScope } from './placeDigestGHGYearlyResponseGHGScope';\nimport { PlaceDigestGHGYearlyResponseGHGType } from './placeDigestGHGYearlyResponseGHGType';\nimport { UnitChild } from './unitChild';\n\n\nexport class PlaceDigestGHGYearlyResponse {\n    /**\n     * The place code\n     */\n    placeCode: string | null | undefined;\n\n    /**\n     * The place info\n     */\n    placeInfo: string | null | undefined;\n\n    /**\n     * The place identifier\n     */\n    placeId: number | null | undefined;\n\n    /**\n     * The date and time the data was updated\n     */\n    updated: Date | null | undefined;\n\n    equivalentCO2EmissionsUnit: UnitChild | null | undefined;\n\n    /**\n     * List of greenhouse gas types with use by year\n     */\n    ghgTypes: Array<PlaceDigestGHGYearlyResponseGHGType> | null | undefined;\n\n    /**\n     * List of greenhouse gas scopes by type with use by year\n     */\n    ghgScopes: Array<PlaceDigestGHGYearlyResponseGHGScope> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PlaceDigestGHGYearlyResponseGHGType } from './placeDigestGHGYearlyResponseGHGType';\n\n\nexport class PlaceDigestGHGYearlyResponseGHGScope {\n    /**\n     * GHG scope identifier\n     */\n    ghgScopeId: number | null | undefined;\n\n    /**\n     * GHG scope code\n     */\n    ghgScopeCode: string | null | undefined;\n\n    /**\n     * GHG scope info\n     */\n    ghgScopeInfo: string | null | undefined;\n\n    /**\n     * GHG scope type code\n     */\n    ghgScopeTypeCode: string | null | undefined;\n\n    /**\n     * GHG scope type code\n     */\n    ghgScopeTypeInfo: string | null | undefined;\n\n    /**\n     * An array of ghg type yearly data\n     */\n    ghgTypes: Array<PlaceDigestGHGYearlyResponseGHGType> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PlaceDigestGHGYearlyResponseResults } from './placeDigestGHGYearlyResponseResults';\nimport { PlaceDigestGHGYearlyResponseTargetComparison } from './placeDigestGHGYearlyResponseTargetComparison';\n\n\nexport class PlaceDigestGHGYearlyResponseGHGType {\n    /**\n     * GHG type identifier\n     */\n    ghgTypeId: number | null | undefined;\n\n    /**\n     * GHG type code\n     */\n    ghgTypeCode: string | null | undefined;\n\n    /**\n     * GHG type info\n     */\n    ghgTypeInfo: string | null | undefined;\n\n    targetComparison: PlaceDigestGHGYearlyResponseTargetComparison | null | undefined;\n\n    /**\n     * An array of yearly data\n     */\n    results: Array<PlaceDigestGHGYearlyResponseResults> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class PlaceDigestGHGYearlyResponseResults {\n    /**\n     * year\n     */\n    year: string | null | undefined;\n\n    /**\n     * Equivalent CO2 emissions\n     */\n    equivalentCO2Emissions: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class PlaceDigestGHGYearlyResponseTargetComparison {\n    /**\n     * Target year\n     */\n    targetYear: number | null | undefined;\n\n    /**\n     * Target label\n     */\n    targetLabel: string | null | undefined;\n\n    /**\n     * Equivalent CO2 emissions for the target year\n     */\n    equivalentCO2Emissions: number | null | undefined;\n\n    /**\n     * Equivalent CO2 emissions for the target year up to the target period that corresponds to the current period\n     */\n    equivalentCO2EmissionsYtd: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PlaceDigestNormalizedCommodityTargetComparisonMonthlyCommodityResults } from './placeDigestNormalizedCommodityTargetComparisonMonthlyCommodityResults';\n\n\nexport class PlaceDigestNormalizedCommodityTargetComparisonMonthly {\n    /**\n     * Target Year\n     */\n    targetYear: number | null | undefined;\n\n    /**\n     * Target Label\n     */\n    targetLabel: string | null | undefined;\n\n    /**\n     * Monthly Target Data\n     */\n    results: Array<PlaceDigestNormalizedCommodityTargetComparisonMonthlyCommodityResults> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class PlaceDigestNormalizedCommodityTargetComparisonMonthlyCommodityResults {\n    /**\n     * Calendar Period Name\n     */\n    periodName: string | null | undefined;\n\n    /**\n     * Calendar Period\n     */\n    calendarPeriod: number | null | undefined;\n\n    /**\n     * Calendar Year\n     */\n    calendarYear: number | null | undefined;\n\n    /**\n     * Fiscal Period\n     */\n    fiscalPeriod: number | null | undefined;\n\n    /**\n     * Fiscal Year\n     */\n    fiscalYear: number | null | undefined;\n\n    /**\n     * Cumulative Common Use\n     */\n    cumulativeCommonUse: number | null | undefined;\n\n    /**\n     * Global Use\n     */\n    globalUse: number | null | undefined;\n\n    /**\n     * Common Use\n     */\n    commonUse: number | null | undefined;\n\n    /**\n     * Common Demand\n     */\n    commonDemand: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PlaceDigestNormalizedMonthlyResponseCommodityData } from './placeDigestNormalizedMonthlyResponseCommodityData';\nimport { PlaceDigestNormalizedMonthlyResponseResults } from './placeDigestNormalizedMonthlyResponseResults';\nimport { PlaceDigestNormalizedTargetComparisonMonthly } from './placeDigestNormalizedTargetComparisonMonthly';\nimport { UnitChild } from './unitChild';\n\n\nexport class PlaceDigestNormalizedMonthlyResponse {\n    /**\n     * The place code\n     */\n    placeCode: string | null | undefined;\n\n    /**\n     * The place info\n     */\n    placeInfo: string | null | undefined;\n\n    /**\n     * The place identifier\n     */\n    placeId: number | null | undefined;\n\n    targetComparison: PlaceDigestNormalizedTargetComparisonMonthly | null | undefined;\n\n    /**\n     * The date and time the data was updated\n     */\n    updated: Date | null | undefined;\n\n    globalUseUnit: UnitChild | null | undefined;\n\n    /**\n     * An array of monthly data per commodity\n     */\n    commodities: Array<PlaceDigestNormalizedMonthlyResponseCommodityData> | null | undefined;\n\n    /**\n     * An array of monthly data\n     */\n    results: Array<PlaceDigestNormalizedMonthlyResponseResults> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PlaceDigestNormalizedCommodityTargetComparisonMonthly } from './placeDigestNormalizedCommodityTargetComparisonMonthly';\nimport { PlaceDigestNormalizedMonthlyResponseCommodityResults } from './placeDigestNormalizedMonthlyResponseCommodityResults';\nimport { UnitChild } from './unitChild';\n\n\nexport class PlaceDigestNormalizedMonthlyResponseCommodityData {\n    /**\n     * The commodity code\n     */\n    commodityCode: string | null | undefined;\n\n    /**\n     * The commodity info\n     */\n    commodityInfo: string | null | undefined;\n\n    /**\n     * The commodity identifier\n     */\n    commodityId: number | null | undefined;\n\n    commonUseUnit: UnitChild | null | undefined;\n\n    commonDemandUnit: UnitChild | null | undefined;\n\n    /**\n     * An array of commodity monthly data\n     */\n    results: Array<PlaceDigestNormalizedMonthlyResponseCommodityResults> | null | undefined;\n\n    targetComparison: PlaceDigestNormalizedCommodityTargetComparisonMonthly | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class PlaceDigestNormalizedMonthlyResponseCommodityResults {\n    /**\n     * Calendar Period Name\n     */\n    periodName: string | null | undefined;\n\n    /**\n     * Calendar Period\n     */\n    calendarPeriod: number | null | undefined;\n\n    /**\n     * Calendar Year\n     */\n    calendarYear: number | null | undefined;\n\n    /**\n     * Fiscal Period\n     */\n    fiscalPeriod: number | null | undefined;\n\n    /**\n     * Fiscal Year\n     */\n    fiscalYear: number | null | undefined;\n\n    /**\n     * Cumulative Common Use\n     */\n    cumulativeCommonUse: number | null | undefined;\n\n    /**\n     * Global Use\n     */\n    globalUse: number | null | undefined;\n\n    /**\n     * Common Use\n     */\n    commonUse: number | null | undefined;\n\n    /**\n     * Common Demand\n     */\n    commonDemand: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class PlaceDigestNormalizedMonthlyResponseResults {\n    /**\n     * Calendar Period Name\n     */\n    periodName: string | null | undefined;\n\n    /**\n     * Calendar Period\n     */\n    calendarPeriod: number | null | undefined;\n\n    /**\n     * Calendar Year\n     */\n    calendarYear: number | null | undefined;\n\n    /**\n     * Fiscal Period\n     */\n    fiscalPeriod: number | null | undefined;\n\n    /**\n     * Fiscal Year\n     */\n    fiscalYear: number | null | undefined;\n\n    /**\n     * Global Use\n     */\n    globalUse: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PlaceDigestNormalizedTargetComparisonMonthlyResults } from './placeDigestNormalizedTargetComparisonMonthlyResults';\n\n\nexport class PlaceDigestNormalizedTargetComparisonMonthly {\n    /**\n     * Target Year\n     */\n    targetYear: number | null | undefined;\n\n    /**\n     * Target Label\n     */\n    targetLabel: string | null | undefined;\n\n    /**\n     * Monthly Target Data\n     */\n    results: Array<PlaceDigestNormalizedTargetComparisonMonthlyResults> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class PlaceDigestNormalizedTargetComparisonMonthlyResults {\n    /**\n     * Calendar Period Name\n     */\n    periodName: string | null | undefined;\n\n    /**\n     * Calendar Period\n     */\n    calendarPeriod: number | null | undefined;\n\n    /**\n     * Calendar Year\n     */\n    calendarYear: number | null | undefined;\n\n    /**\n     * Fiscal Period\n     */\n    fiscalPeriod: number | null | undefined;\n\n    /**\n     * Fiscal Year\n     */\n    fiscalYear: number | null | undefined;\n\n    /**\n     * Global Use\n     */\n    globalUse: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PlaceDigestNormalizedYearlyResponseCommodityData } from './placeDigestNormalizedYearlyResponseCommodityData';\nimport { PlaceDigestNormalizedYearlyResponseResults } from './placeDigestNormalizedYearlyResponseResults';\nimport { PlaceDigestNormalizedYearlyResponseTargetComparison } from './placeDigestNormalizedYearlyResponseTargetComparison';\nimport { UnitChild } from './unitChild';\n\n\nexport class PlaceDigestNormalizedYearlyResponse {\n    /**\n     * The place code\n     */\n    placeCode: string | null | undefined;\n\n    /**\n     * The place info\n     */\n    placeInfo: string | null | undefined;\n\n    /**\n     * The place identifier\n     */\n    placeId: number | null | undefined;\n\n    targetComparison: PlaceDigestNormalizedYearlyResponseTargetComparison | null | undefined;\n\n    /**\n     * An array of yearly data\n     */\n    results: Array<PlaceDigestNormalizedYearlyResponseResults> | null | undefined;\n\n    /**\n     * The date and time the data was updated\n     */\n    updated: Date | null | undefined;\n\n    globalUseUnit: UnitChild | null | undefined;\n\n    /**\n     * An array of yearly data per commodity\n     */\n    commodities: Array<PlaceDigestNormalizedYearlyResponseCommodityData> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PlaceDigestNormalizedYearlyResponseCommodityResults } from './placeDigestNormalizedYearlyResponseCommodityResults';\nimport { PlaceDigestNormalizedYearlyResponseTargetComparison } from './placeDigestNormalizedYearlyResponseTargetComparison';\nimport { UnitChild } from './unitChild';\n\n\nexport class PlaceDigestNormalizedYearlyResponseCommodityData {\n    /**\n     * The commodity code\n     */\n    commodityCode: string | null | undefined;\n\n    /**\n     * The commodity info\n     */\n    commodityInfo: string | null | undefined;\n\n    /**\n     * The commodity identifier\n     */\n    commodityId: number | null | undefined;\n\n    targetComparison: PlaceDigestNormalizedYearlyResponseTargetComparison | null | undefined;\n\n    commonUseUnit: UnitChild | null | undefined;\n\n    /**\n     * An array of yearly data\n     */\n    results: Array<PlaceDigestNormalizedYearlyResponseCommodityResults> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class PlaceDigestNormalizedYearlyResponseCommodityResults {\n    /**\n     * year\n     */\n    year: string | null | undefined;\n\n    /**\n     * Common Use\n     */\n    commonUse: number | null | undefined;\n\n    /**\n     * Global Use\n     */\n    globalUse: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class PlaceDigestNormalizedYearlyResponseResults {\n    /**\n     * year\n     */\n    year: string | null | undefined;\n\n    /**\n     * Use\n     */\n    globalUse: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class PlaceDigestNormalizedYearlyResponseTargetComparison {\n    /**\n     * Target year\n     */\n    targetYear: number | null | undefined;\n\n    /**\n     * Target label\n     */\n    targetLabel: string | null | undefined;\n\n    /**\n     * Total use for the target year\n     */\n    globalUse: number | null | undefined;\n\n    /**\n     * Total use for the target year up to the target period that corresponds to the current period\n     */\n    globalUseYtd: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PlaceDigestSavingsMonthlyResponseCommodityData } from './placeDigestSavingsMonthlyResponseCommodityData';\nimport { PlaceDigestSavingsMonthlyResponseResults } from './placeDigestSavingsMonthlyResponseResults';\nimport { UnitChild } from './unitChild';\n\n\nexport class PlaceDigestSavingsMonthlyResponse {\n    /**\n     * The place code\n     */\n    placeCode: string | null | undefined;\n\n    /**\n     * The place info\n     */\n    placeInfo: string | null | undefined;\n\n    /**\n     * The place identifier\n     */\n    placeId: number | null | undefined;\n\n    /**\n     * The date and time the data was updated\n     */\n    updated: Date | null | undefined;\n\n    globalUseUnit: UnitChild | null | undefined;\n\n    costUnit: UnitChild | null | undefined;\n\n    /**\n     * An array of SavingsMonthly data per commodity\n     */\n    commodities: Array<PlaceDigestSavingsMonthlyResponseCommodityData> | null | undefined;\n\n    /**\n     * An array of SavingsMonthly data\n     */\n    results: Array<PlaceDigestSavingsMonthlyResponseResults> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PlaceDigestSavingsMonthlyResponseCommodityDataCommodityResults } from './placeDigestSavingsMonthlyResponseCommodityDataCommodityResults';\nimport { UnitChild } from './unitChild';\n\n\nexport class PlaceDigestSavingsMonthlyResponseCommodityData {\n    /**\n     * The commodity code\n     */\n    commodityCode: string | null | undefined;\n\n    /**\n     * The commodity info\n     */\n    commodityInfo: string | null | undefined;\n\n    /**\n     * The commodity identifier\n     */\n    commodityId: number | null | undefined;\n\n    commonUseUnit: UnitChild | null | undefined;\n\n    costUnit: UnitChild | null | undefined;\n\n    /**\n     * An array of SavingsMonthly data\n     */\n    results: Array<PlaceDigestSavingsMonthlyResponseCommodityDataCommodityResults> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class PlaceDigestSavingsMonthlyResponseCommodityDataCommodityResults {\n    /**\n     * Calendar Period Name\n     */\n    periodName: string | null | undefined;\n\n    /**\n     * Calendar Period\n     */\n    calendarPeriod: number | null | undefined;\n\n    /**\n     * Calendar Year\n     */\n    calendarYear: number | null | undefined;\n\n    /**\n     * Fiscal Period\n     */\n    fiscalPeriod: number | null | undefined;\n\n    /**\n     * Fiscal Year\n     */\n    fiscalYear: number | null | undefined;\n\n    /**\n     * Savings Total Cost\n     */\n    savingsTotalCost: number | null | undefined;\n\n    /**\n     * Savings Global Use\n     */\n    savingsCommonUse: number | null | undefined;\n\n    /**\n     * Savings Global Use\n     */\n    savingsGlobalUse: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class PlaceDigestSavingsMonthlyResponseResults {\n    /**\n     * Calendar Period Name\n     */\n    periodName: string | null | undefined;\n\n    /**\n     * Calendar Period\n     */\n    calendarPeriod: number | null | undefined;\n\n    /**\n     * Calendar Year\n     */\n    calendarYear: number | null | undefined;\n\n    /**\n     * Fiscal Period\n     */\n    fiscalPeriod: number | null | undefined;\n\n    /**\n     * Fiscal Year\n     */\n    fiscalYear: number | null | undefined;\n\n    /**\n     * Savings Total Cost\n     */\n    savingsTotalCost: number | null | undefined;\n\n    /**\n     * Savings Global Use\n     */\n    savingsGlobalUse: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PlaceDigestSavingsYearlyResponseCommodityData } from './placeDigestSavingsYearlyResponseCommodityData';\nimport { PlaceDigestSavingsYearlyResponseResults } from './placeDigestSavingsYearlyResponseResults';\nimport { UnitChild } from './unitChild';\n\n\nexport class PlaceDigestSavingsYearlyResponse {\n    /**\n     * The place code\n     */\n    placeCode: string | null | undefined;\n\n    /**\n     * The place info\n     */\n    placeInfo: string | null | undefined;\n\n    /**\n     * The place identifier\n     */\n    placeId: number | null | undefined;\n\n    /**\n     * Program to Date BATCC (Baseline Adjusted to Current Conditions) Global Use\n     */\n    allTimeBATCCGlobalUse: number | null | undefined;\n\n    /**\n     * Program to Date Global Use\n     */\n    allTimeGlobalUse: number | null | undefined;\n\n    /**\n     * Program to Date Savings Global Use = allTimeBATCCGlobalUse - allTimeGlobalUse\n     */\n    allTimeSavingsGlobalUse: number | null | undefined;\n\n    /**\n     * Program to Date BATCC (Baseline Adjusted to Current Conditions) Total Cost\n     */\n    allTimeBATCCTotalCost: number | null | undefined;\n\n    /**\n     * Program to Date Savings Total Cost\n     */\n    allTimeTotalCost: number | null | undefined;\n\n    /**\n     * Program to Date Savings Total Cost = allTimeBATCCTotalCost - allTimeTotalCost\n     */\n    allTimeSavingsTotalCost: number | null | undefined;\n\n    /**\n     * An array of savings yearly data\n     */\n    results: Array<PlaceDigestSavingsYearlyResponseResults> | null | undefined;\n\n    /**\n     * The date and time the data was updated\n     */\n    updated: Date | null | undefined;\n\n    globalUseUnit: UnitChild | null | undefined;\n\n    costUnit: UnitChild | null | undefined;\n\n    /**\n     * An array of savings yearly data per commodity\n     */\n    commodities: Array<PlaceDigestSavingsYearlyResponseCommodityData> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PlaceDigestSavingsYearlyResponseCommodityDataCommodityResults } from './placeDigestSavingsYearlyResponseCommodityDataCommodityResults';\nimport { UnitChild } from './unitChild';\n\n\nexport class PlaceDigestSavingsYearlyResponseCommodityData {\n    /**\n     * The commodity code\n     */\n    commodityCode: string | null | undefined;\n\n    /**\n     * The commodity info\n     */\n    commodityInfo: string | null | undefined;\n\n    /**\n     * The commodity identifier\n     */\n    commodityId: number | null | undefined;\n\n    /**\n     * Program to Date BATCC (Baseline Adjusted to Current Conditions) Common Use\n     */\n    allTimeBATCCCommonUse: number | null | undefined;\n\n    /**\n     * Program to Date Common Use\n     */\n    allTimeCommonUse: number | null | undefined;\n\n    /**\n     * Program to Date Savings Common Use = allTimeBATCCCommonUse - allTimeCommonUse\n     */\n    allTimeSavingsCommonUse: number | null | undefined;\n\n    /**\n     * Program to Date BATCC (Baseline Adjusted to Current Conditions) Global Use\n     */\n    allTimeBATCCGlobalUse: number | null | undefined;\n\n    /**\n     * Program to Date Global Use\n     */\n    allTimeGlobalUse: number | null | undefined;\n\n    /**\n     * Program to Date Savings Global Use = allTimeBATCCGlobalUse - allTimeGlobalUse\n     */\n    allTimeSavingsGlobalUse: number | null | undefined;\n\n    /**\n     * Program to Date BATCC (Baseline Adjusted to Current Conditions) Total Cost\n     */\n    allTimeBATCCTotalCost: number | null | undefined;\n\n    /**\n     * Program to Date Total Cost\n     */\n    allTimeTotalCost: number | null | undefined;\n\n    /**\n     * Program to Date Savings Total Cost = allTimeBATCCTotalCost - allTimeTotalCost\n     */\n    allTimeSavingsTotalCost: number | null | undefined;\n\n    costUnit: UnitChild | null | undefined;\n\n    commonUseUnit: UnitChild | null | undefined;\n\n    /**\n     * An array of yearly data\n     */\n    results: Array<PlaceDigestSavingsYearlyResponseCommodityDataCommodityResults> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class PlaceDigestSavingsYearlyResponseCommodityDataCommodityResults {\n    /**\n     * Year\n     */\n    year: string | null | undefined;\n\n    /**\n     * BATCC (Baseline Adjusted to Current Conditions) Total Cost\n     */\n    batccTotalCost: number | null | undefined;\n\n    /**\n     * Total Cost\n     */\n    totalCost: number | null | undefined;\n\n    /**\n     * Savings Total Cost = BATCCTotalCost - TotalCost\n     */\n    savingsTotalCost: number | null | undefined;\n\n    /**\n     * BATCC (Baseline Adjusted to Current Conditions) Global Use\n     */\n    batccGlobalUse: number | null | undefined;\n\n    /**\n     * GlobalUse\n     */\n    globalUse: number | null | undefined;\n\n    /**\n     * Savings Global Use = BATCCGlobalUse - GlobalUse\n     */\n    savingsGlobalUse: number | null | undefined;\n\n    /**\n     * BATCC (Baseline Adjusted to Current Conditions) Common Use\n     */\n    batccCommonUse: number | null | undefined;\n\n    /**\n     * Common Use\n     */\n    commonUse: number | null | undefined;\n\n    /**\n     * Savings Common Use = BATCCCommonUse - CommonUse\n     */\n    savingsCommonUse: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class PlaceDigestSavingsYearlyResponseResults {\n    /**\n     * Year\n     */\n    year: string | null | undefined;\n\n    /**\n     * BATCC (Baseline Adjusted to Current Conditions) Total Cost\n     */\n    batccTotalCost: number | null | undefined;\n\n    /**\n     * Total Cost\n     */\n    totalCost: number | null | undefined;\n\n    /**\n     * Savings Total Cost = BATCCTotalCost - TotalCost\n     */\n    savingsTotalCost: number | null | undefined;\n\n    /**\n     * BATCC (Baseline Adjusted to Current Conditions) Global Use\n     */\n    batccGlobalUse: number | null | undefined;\n\n    /**\n     * GlobalUse\n     */\n    globalUse: number | null | undefined;\n\n    /**\n     * Savings Global Use = BATCCGlobalUse - GlobalUse\n     */\n    savingsGlobalUse: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PlaceDigestTargetComparisonMonthlyResults } from './placeDigestTargetComparisonMonthlyResults';\n\n\nexport class PlaceDigestTargetComparisonMonthly {\n    /**\n     * Target Year\n     */\n    targetYear: number | null | undefined;\n\n    /**\n     * Target Label\n     */\n    targetLabel: string | null | undefined;\n\n    /**\n     * Monthly Target Data\n     */\n    results: Array<PlaceDigestTargetComparisonMonthlyResults> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class PlaceDigestTargetComparisonMonthlyResults {\n    /**\n     * Calendar Period Name\n     */\n    periodName: string | null | undefined;\n\n    /**\n     * Calendar Period\n     */\n    calendarPeriod: number | null | undefined;\n\n    /**\n     * Calendar Year\n     */\n    calendarYear: number | null | undefined;\n\n    /**\n     * Fiscal Period\n     */\n    fiscalPeriod: number | null | undefined;\n\n    /**\n     * Fiscal Year\n     */\n    fiscalYear: number | null | undefined;\n\n    /**\n     * Total Cost\n     */\n    totalCost: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AddressChild } from './addressChild';\n\n\nexport class PlaceEdit {\n    /**\n     * The place code <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 32 characters</span> <span class='property-internal'>Not ROOT</span>\n     */\n    placeCode: string | null ;\n\n    /**\n     * The place info <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 50 characters</span>\n     */\n    placeInfo: string | null ;\n\n    /**\n     * The identifier for the parent of the place. The parent is the place directly above the current place on the buildings and meters tree <span class='property-internal'>Required</span> <span class='property-internal'>Topmost (Place)</span>\n     */\n    parentPlaceId: number | null ;\n\n    /**\n     * The identifier for the place type <span class='property-internal'>Required</span>\n     */\n    placeTypeId: number | null ;\n\n    /**\n     * The identifier for the place's primary use If this is a building and PrimaryUseId is null this will be set to Unknown (PrimaryUseId 55) <span class='property-internal'>Required (defined)</span>\n     */\n    primaryUseId: number | null | undefined;\n\n    /**\n     * The date and time the place was built <span class='property-internal'>Required (defined)</span>\n     */\n    buildDate: Date | null | undefined;\n\n    address: AddressChild | null | undefined;\n\n    /**\n     * The code for the weather station the place is assigned to <span class='property-internal'>Must be between 0 and 32 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    weatherStationCode: string | null | undefined;\n\n    /**\n     * A description of the place <span class='property-internal'>Must be between 0 and 4000 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    placeDescription: string | null | undefined;\n\n    /**\n     * The Time Zone Id for the place. If not specified or set to null, the owner's default time zone will be used if the place is a site and doesn't already have a time zone. <span class='property-internal'>Required (defined)</span>\n     */\n    timeZoneId: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class PlaceEntityType {\n    /**\n     * The place entity type identifier\n     */\n    placeEntityTypeId: number | null | undefined;\n\n    /**\n     * The place entity type name\n     */\n    placeEntityTypeInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class PlaceGroupCategoryChild {\n    /**\n     * \n     */\n    placeGroupCategoryId: number | null | undefined;\n\n    /**\n     * \n     */\n    placeGroupCategoryCode: string | null | undefined;\n\n    /**\n     * \n     */\n    placeGroupCategoryInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class PlaceGroupChild {\n    /**\n     * The place group identifier\n     */\n    placeGroupId: number | null | undefined;\n\n    /**\n     * The place group code\n     */\n    placeGroupCode: string | null | undefined;\n\n    /**\n     * The place group info\n     */\n    placeGroupInfo: string | null | undefined;\n\n    /**\n     * Indicates if this place group is an autogroup\n     */\n    autoGroup: boolean | null | undefined;\n\n    /**\n     * Indicates if this place group is an user defined auto group\n     */\n    userDefinedAutoGroup: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PlaceGroupDigestAreaRankingChild } from './placeGroupDigestAreaRankingChild';\nimport { UnitChild } from './unitChild';\n\n\nexport class PlaceGroupDigestAreaDemandRankingResponse {\n    /**\n     * Highest cost for this group\n     */\n    highCost: number | null | undefined;\n\n    /**\n     * Lowest cost for this group\n     */\n    lowCost: number | null | undefined;\n\n    /**\n     * Average cost for this group\n     */\n    averageCost: number | null | undefined;\n\n    /**\n     * Median cost for this group\n     */\n    medianCost: number | null | undefined;\n\n    /**\n     * Highest use for this group\n     */\n    highUse: number | null | undefined;\n\n    /**\n     * Lowest use for this group\n     */\n    lowUse: number | null | undefined;\n\n    /**\n     * Average use for this group\n     */\n    averageUse: number | null | undefined;\n\n    /**\n     * Median use for this group\n     */\n    medianUse: number | null | undefined;\n\n    /**\n     * Highest benchmark value for this group\n     */\n    highValue: number | null | undefined;\n\n    /**\n     * Lowest benchmark value for this group\n     */\n    lowValue: number | null | undefined;\n\n    /**\n     * Median benchmark value for this group\n     */\n    medianValue: number | null | undefined;\n\n    /**\n     * Total area for this group\n     */\n    totalArea: number | null | undefined;\n\n    /**\n     * Highest area for this group\n     */\n    highArea: number | null | undefined;\n\n    /**\n     * Lowest area for this group\n     */\n    lowArea: number | null | undefined;\n\n    /**\n     * Median area for this group\n     */\n    medianArea: number | null | undefined;\n\n    /**\n     * The highest savings opportunity for this group\n     */\n    highSavingsOpportunity: number | null | undefined;\n\n    /**\n     * \n     */\n    results: Array<PlaceGroupDigestAreaRankingChild> | null | undefined;\n\n    /**\n     * \n     */\n    placeGroupId: number | null | undefined;\n\n    /**\n     * \n     */\n    placeGroupCode: string | null | undefined;\n\n    /**\n     * \n     */\n    placeGroupInfo: string | null | undefined;\n\n    /**\n     * This is the user's preferred way of viewing this entity - could be code or info based on the master \\\"data object view\\\" setting in DB\n     */\n    placeGroupDisplay: string | null | undefined;\n\n    /**\n     * This will provide the benchmark unit eg:MMBTU/ft² or $/day\n     */\n    benchmarkUnit: string | null | undefined;\n\n    /**\n     * This will provide the unit for the benchmarking factor eg:ft² or day\n     */\n    benchmarkFactorUnit: string | null | undefined;\n\n    /**\n     * This will provide the unit for the benchmark value eg:$ for cost/day, MMBTU for annualized use/area\n     */\n    benchmarkValueUnit: string | null | undefined;\n\n    useUnit: UnitChild | null | undefined;\n\n    costUnit: UnitChild | null | undefined;\n\n    /**\n     * The date and time the data was updated\n     */\n    updated: Date | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class PlaceGroupDigestAreaRankingChild {\n    /**\n     * The cost for this place\n     */\n    cost: number | null | undefined;\n\n    /**\n     * The use for this place\n     */\n    use: number | null | undefined;\n\n    /**\n     * The benchmark value for this place\n     */\n    value: number | null | undefined;\n\n    /**\n     * The area for this place\n     */\n    area: number | null | undefined;\n\n    /**\n     * The savings opportunity for this place\n     */\n    savingsOpportunity: number | null | undefined;\n\n    /**\n     * Does this place have incomplete data?\n     */\n    incompleteData: boolean | null | undefined;\n\n    /**\n     * \n     */\n    placeId: number | null | undefined;\n\n    /**\n     * \n     */\n    placeCode: string | null | undefined;\n\n    /**\n     * \n     */\n    placeInfo: string | null | undefined;\n\n    /**\n     * \n     */\n    placeDisplay: string | null | undefined;\n\n    /**\n     * \n     */\n    includeInCharts: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class PlaceGroupDigestBenchmarkRankingChild {\n    /**\n     * The cost for this place\n     */\n    cost: number | null | undefined;\n\n    /**\n     * The use for this place\n     */\n    use: number | null | undefined;\n\n    /**\n     * The benchmark value for this place\n     */\n    value: number | null | undefined;\n\n    /**\n     * Does this place have incomplete data?\n     */\n    incompleteData: boolean | null | undefined;\n\n    /**\n     * \n     */\n    placeId: number | null | undefined;\n\n    /**\n     * \n     */\n    placeCode: string | null | undefined;\n\n    /**\n     * \n     */\n    placeInfo: string | null | undefined;\n\n    /**\n     * \n     */\n    placeDisplay: string | null | undefined;\n\n    /**\n     * \n     */\n    includeInCharts: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PlaceGroupDigestBenchmarkRankingChild } from './placeGroupDigestBenchmarkRankingChild';\nimport { UnitChild } from './unitChild';\n\n\nexport class PlaceGroupDigestBenchmarkRankingResponse {\n    /**\n     * The highest cost for this group\n     */\n    highCost: number | null | undefined;\n\n    /**\n     * The lowest cost for this group\n     */\n    lowCost: number | null | undefined;\n\n    /**\n     * The average cost for this group\n     */\n    averageCost: number | null | undefined;\n\n    /**\n     * The median cost for this group\n     */\n    medianCost: number | null | undefined;\n\n    /**\n     * The highest use for this group\n     */\n    highUse: number | null | undefined;\n\n    /**\n     * The lowest use for this group\n     */\n    lowUse: number | null | undefined;\n\n    /**\n     * The average use for this group\n     */\n    averageUse: number | null | undefined;\n\n    /**\n     * The median use for this group\n     */\n    medianUse: number | null | undefined;\n\n    /**\n     * The highest benchmark value for this group\n     */\n    highValue: number | null | undefined;\n\n    /**\n     * The lowest benchmark value for this group\n     */\n    lowValue: number | null | undefined;\n\n    /**\n     * The median benchmark value for this group\n     */\n    medianValue: number | null | undefined;\n\n    /**\n     * \n     */\n    results: Array<PlaceGroupDigestBenchmarkRankingChild> | null | undefined;\n\n    /**\n     * \n     */\n    placeGroupId: number | null | undefined;\n\n    /**\n     * \n     */\n    placeGroupCode: string | null | undefined;\n\n    /**\n     * \n     */\n    placeGroupInfo: string | null | undefined;\n\n    /**\n     * This is the user's preferred way of viewing this entity - could be code or info based on the master \\\"data object view\\\" setting in DB\n     */\n    placeGroupDisplay: string | null | undefined;\n\n    /**\n     * This will provide the benchmark unit eg:MMBTU/ft² or $/day\n     */\n    benchmarkUnit: string | null | undefined;\n\n    /**\n     * This will provide the unit for the benchmarking factor eg:ft² or day\n     */\n    benchmarkFactorUnit: string | null | undefined;\n\n    /**\n     * This will provide the unit for the benchmark value eg:$ for cost/day, MMBTU for annualized use/area\n     */\n    benchmarkValueUnit: string | null | undefined;\n\n    useUnit: UnitChild | null | undefined;\n\n    costUnit: UnitChild | null | undefined;\n\n    /**\n     * The date and time the data was updated\n     */\n    updated: Date | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class PlaceGroupDigestChild {\n    /**\n     * \n     */\n    placeId: number | null | undefined;\n\n    /**\n     * \n     */\n    placeCode: string | null | undefined;\n\n    /**\n     * \n     */\n    placeInfo: string | null | undefined;\n\n    /**\n     * \n     */\n    placeDisplay: string | null | undefined;\n\n    /**\n     * \n     */\n    includeInCharts: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class PlaceGroupDigestWeatherRankingChild {\n    /**\n     * \n     */\n    baseValue: number | null | undefined;\n\n    /**\n     * \n     */\n    slopeValue: number | null | undefined;\n\n    /**\n     * \n     */\n    placeId: number | null | undefined;\n\n    /**\n     * \n     */\n    placeCode: string | null | undefined;\n\n    /**\n     * \n     */\n    placeInfo: string | null | undefined;\n\n    /**\n     * \n     */\n    placeDisplay: string | null | undefined;\n\n    /**\n     * \n     */\n    includeInCharts: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PlaceGroupDigestWeatherRankingChild } from './placeGroupDigestWeatherRankingChild';\nimport { UnitChild } from './unitChild';\n\n\nexport class PlaceGroupDigestWeatherRankingResponse {\n    /**\n     * \n     */\n    highWeatherLoad: number | null | undefined;\n\n    /**\n     * \n     */\n    lowWeatherLoad: number | null | undefined;\n\n    /**\n     * \n     */\n    averageWeatherLoad: number | null | undefined;\n\n    /**\n     * \n     */\n    medianWeatherLoad: number | null | undefined;\n\n    /**\n     * \n     */\n    highNonWeatherLoad: number | null | undefined;\n\n    /**\n     * \n     */\n    lowNonWeatherLoad: number | null | undefined;\n\n    /**\n     * \n     */\n    averageNonWeatherLoad: number | null | undefined;\n\n    /**\n     * \n     */\n    medianNonWeatherLoad: number | null | undefined;\n\n    /**\n     * \n     */\n    results: Array<PlaceGroupDigestWeatherRankingChild> | null | undefined;\n\n    /**\n     * \n     */\n    placeGroupId: number | null | undefined;\n\n    /**\n     * \n     */\n    placeGroupCode: string | null | undefined;\n\n    /**\n     * \n     */\n    placeGroupInfo: string | null | undefined;\n\n    /**\n     * This is the user's preferred way of viewing this entity - could be code or info based on the master \\\"data object view\\\" setting in DB\n     */\n    placeGroupDisplay: string | null | undefined;\n\n    /**\n     * This will provide the benchmark unit eg:MMBTU/ft² or $/day\n     */\n    benchmarkUnit: string | null | undefined;\n\n    /**\n     * This will provide the unit for the benchmarking factor eg:ft² or day\n     */\n    benchmarkFactorUnit: string | null | undefined;\n\n    /**\n     * This will provide the unit for the benchmark value eg:$ for cost/day, MMBTU for annualized use/area\n     */\n    benchmarkValueUnit: string | null | undefined;\n\n    useUnit: UnitChild | null | undefined;\n\n    costUnit: UnitChild | null | undefined;\n\n    /**\n     * The date and time the data was updated\n     */\n    updated: Date | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class PlaceGroupMember {\n    /**\n     * The place group this place will belong to <span class='property-internal'>Required (defined)</span>\n     */\n    placeGroupId: number | null | undefined;\n\n    /**\n     * Whether to include this place in the group's benchmark charts <span class='property-internal'>Required (defined)</span>\n     */\n    includeInCharts: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { FilterEdit } from './filterEdit';\n\n\nexport class PlaceGroupRequest {\n    /**\n     * The place group info <span class='property-internal'>Must be between 0 and 255 characters</span> <span class='property-internal'>Required</span>\n     */\n    placeGroupInfo: string | null ;\n\n    /**\n     * The place group category <span class='property-internal'>Required</span>\n     */\n    placeGroupCategoryId: number | null ;\n\n    /**\n     * Should this group only return members within the current user's topmost <span class='property-internal'>Required</span>\n     */\n    limitMembersByTopmost: boolean | null ;\n\n    /**\n     * List of filters to add members to an automatic place group Either AutomaticGroupFilters or ManualGroupMembers, but not both, must be passed in <span class='property-internal'>Cannot be Empty</span> <span class='property-internal'>NULL Valid</span> <span class='property-internal'>Only one of AutomaticGroupFilters, ManualGroupMembers can be set</span>\n     */\n    automaticGroupFilters: Array<FilterEdit> | null | undefined;\n\n    /**\n     * List of members to add to the group Either AutomaticGroupFilters or ManualGroupMembers, but not both, must be passed in Members but be within the current user's topmost You can create an empty group by passing in an empty array <span class='property-internal'>Only one of AutomaticGroupFilters, ManualGroupMembers can be set</span>\n     */\n    manualGroupMembers: Array<number> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PlaceGroupCategoryChild } from './placeGroupCategoryChild';\n\n\nexport class PlaceGroupResponse {\n    /**\n     * The place group identifier\n     */\n    placeGroupId: number | null | undefined;\n\n    /**\n     * The place group code\n     */\n    placeGroupCode: string | null | undefined;\n\n    /**\n     * The place group info\n     */\n    placeGroupInfo: string | null | undefined;\n\n    /**\n     * Indicates if this place group is an autogroup\n     */\n    autoGroup: boolean | null | undefined;\n\n    placeGroupCategory: PlaceGroupCategoryChild | null | undefined;\n\n    /**\n     * Indicates if this place group is an user defined auto group\n     */\n    userDefinedAutoGroup: boolean | null | undefined;\n\n    /**\n     * The last time a member was inserted, updated, or deleted from the group\n     */\n    lastUpdated: Date | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class PlaceInfo {\n    /**\n     * The place identifier\n     */\n    placeId: number | null | undefined;\n\n    /**\n     * The place code\n     */\n    placeCode: string | null | undefined;\n\n    /**\n     * The place info\n     */\n    placeInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AddressChild } from './addressChild';\nimport { ContactChild } from './contactChild';\nimport { DataPointChild } from './dataPointChild';\nimport { EnergyStarRatingChild } from './energyStarRatingChild';\nimport { LatestBenchmarkValue } from './latestBenchmarkValue';\nimport { MeterChild } from './meterChild';\nimport { PlaceChild } from './placeChild';\nimport { PlaceSizeChild } from './placeSizeChild';\nimport { PlaceTypeResponse } from './placeTypeResponse';\nimport { PrimaryUseChild } from './primaryUseChild';\nimport { ScheduleChild } from './scheduleChild';\nimport { TimeZoneChild } from './timeZoneChild';\nimport { UserChild } from './userChild';\nimport { WatticsSite } from './watticsSite';\nimport { WeatherStationChild } from './weatherStationChild';\n\n\nexport class PlaceResponse {\n    parent: PlaceChild | null | undefined;\n\n    placeType: PlaceTypeResponse | null | undefined;\n\n    /**\n     * The date and time the place was created\n     */\n    createdDate: Date | null | undefined;\n\n    createdBy: UserChild | null | undefined;\n\n    /**\n     * The date and time of the most recent modification to the place\n     */\n    modifiedDate: Date | null | undefined;\n\n    modifiedBy: UserChild | null | undefined;\n\n    address: AddressChild | null | undefined;\n\n    /**\n     * The date and time the place was built\n     */\n    buildDate: Date | null | undefined;\n\n    primaryUse: PrimaryUseChild | null | undefined;\n\n    weatherStation: WeatherStationChild | null | undefined;\n\n    size: PlaceSizeChild | null | undefined;\n\n    benchmark1: LatestBenchmarkValue | null | undefined;\n\n    benchmark2: LatestBenchmarkValue | null | undefined;\n\n    benchmark3: LatestBenchmarkValue | null | undefined;\n\n    /**\n     * Tells whether energy star is enabled for the given place\n     */\n    energyStarEnabled: boolean | null | undefined;\n\n    energyStarRating: EnergyStarRatingChild | null | undefined;\n\n    /**\n     * An array of child places. A child place is one directly beneath the current place\n     */\n    places: Array<PlaceChild> | null | undefined;\n\n    /**\n     * An array of child meters. A child meter is one directly beneath the current place\n     */\n    meters: Array<MeterChild> | null | undefined;\n\n    /**\n     * An array of child data points. A child data point is one directly beneath the current place\n     */\n    dataPoints: Array<DataPointChild> | null | undefined;\n\n    contact: ContactChild | null | undefined;\n\n    /**\n     * A description of the place\n     */\n    placeDescription: string | null | undefined;\n\n    watticsSite: WatticsSite | null | undefined;\n\n    /**\n     * Tells whether the place area is calculated from its children (TODO: Use 'Area' instead of 'Size'? Would be inconsistent with Size property in DTO)\n     */\n    isSizeCalculated: boolean | null | undefined;\n\n    /**\n     * Tells whether or not the place's data is rolled up to its parents. Currently only supported by ESA.\n     */\n    isDataRolledUp: boolean | null | undefined;\n\n    sizeInReportingUnit: PlaceSizeChild | null | undefined;\n\n    /**\n     * The name of the place's image. Currently only supported by ESA.\n     */\n    imageFilename: string | null | undefined;\n\n    timeZone: TimeZoneChild | null | undefined;\n\n    /**\n     * The place's schedules\n     */\n    schedules: Array<ScheduleChild> | null | undefined;\n\n    /**\n     * The place identifier\n     */\n    placeId: number | null | undefined;\n\n    /**\n     * The place code\n     */\n    placeCode: string | null | undefined;\n\n    /**\n     * The place info\n     */\n    placeInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class PlaceSizeChild {\n    /**\n     * The identifier for this PlaceSize record\n     */\n    placeSizeId: number | null | undefined;\n\n    /**\n     * The effective start date for this place size record\n     */\n    beginDate: Date | null | undefined;\n\n    /**\n     * The effective end date for this place size record\n     */\n    endDate: Date | null | undefined;\n\n    /**\n     * The value of the current place size record\n     */\n    value: number | null | undefined;\n\n    /**\n     * The identifier for the unit this place size is measured in\n     */\n    unitId: number | null | undefined;\n\n    /**\n     * The code for the unit this place size is measured in <span class='property-internal'>Must be between 0 and 16 characters</span> <span class='property-internal'>Must be between 0 and 16 characters</span>\n     */\n    unitCode: string | null | undefined;\n\n    /**\n     * The name of the unit this place size is measured in <span class='property-internal'>Must be between 0 and 32 characters</span> <span class='property-internal'>Must be between 0 and 32 characters</span>\n     */\n    unitInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class PlaceSizeCreate {\n    /**\n     * The begin date for the place size <span class='property-internal'>Required</span> <span class='property-internal'>Required</span>\n     */\n    beginDate: Date | null ;\n\n    /**\n     * The place size value <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 2147483647</span> <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 2147483647</span>\n     */\n    value: number | null ;\n\n    /**\n     * <p>The place size's unit code</p> <p>Options are SQFEET for Square Feet and SQMETER for Square Meters</p> <span class='property-internal'>One of 'SQFEET', 'SQMETER', 'HECTARE', 'SQKILOMETER', 'SQMILE', 'SQYARD', 'ACRE'</span> <span class='property-internal'>Case sensitive</span> <span class='property-internal'>Must be between 0 and 16 characters</span> <span class='property-internal'>One of 'SQFEET', 'SQMETER', 'HECTARE', 'SQKILOMETER', 'SQMILE', 'SQYARD', 'ACRE'</span> <span class='property-internal'>Case sensitive</span> <span class='property-internal'>Must be between 0 and 16 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    unitCode: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class PlaceSizeResponse {\n    /**\n     * The identifier for the current place\n     */\n    placeId: number | null | undefined;\n\n    /**\n     * The code for the current place\n     */\n    placeCode: string | null | undefined;\n\n    /**\n     * The name of the current place\n     */\n    placeInfo: string | null | undefined;\n\n    /**\n     * The identifier for this PlaceSize record\n     */\n    placeSizeId: number | null | undefined;\n\n    /**\n     * The effective start date for this place size record\n     */\n    beginDate: Date | null | undefined;\n\n    /**\n     * The effective end date for this place size record\n     */\n    endDate: Date | null | undefined;\n\n    /**\n     * The value of the current place size record\n     */\n    value: number | null | undefined;\n\n    /**\n     * The identifier for the unit this place size is measured in\n     */\n    unitId: number | null | undefined;\n\n    /**\n     * The code for the unit this place size is measured in <span class='property-internal'>Must be between 0 and 16 characters</span>\n     */\n    unitCode: string | null | undefined;\n\n    /**\n     * The name of the unit this place size is measured in <span class='property-internal'>Must be between 0 and 32 characters</span>\n     */\n    unitInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class PlaceSubmissionTypeRequest {\n    /**\n     * The submission type to apply <span class='property-internal'>One of 'Automatic', 'Manual'</span> <span class='property-internal'>Required (defined)</span>\n     */\n    submissionType: string | null | undefined;\n\n    /**\n     * The list of places whose submission types will be updated <span class='property-internal'>Cannot be Empty</span> <span class='property-internal'>Required (defined)</span>\n     */\n    placeIds: Array<number> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class PlaceTypeRequest {\n    /**\n     * The place type info <span class='property-internal'>Must be between 0 and 32 characters</span>\n     */\n    placeTypeInfo: string | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { Icon } from './icon';\nimport { PlaceEntityType } from './placeEntityType';\n\n\nexport class PlaceTypeResponse {\n    /**\n     * The place type identifier\n     */\n    placeTypeId: number | null | undefined;\n\n    /**\n     * The place type code\n     */\n    placeTypeCode: string | null | undefined;\n\n    /**\n     * The place type info\n     */\n    placeTypeInfo: string | null | undefined;\n\n    /**\n     * Indicates if the place is a structure\n     */\n    structure: boolean | null | undefined;\n\n    icon: Icon | null | undefined;\n\n    placeEntityType: PlaceEntityType | null | undefined;\n\n    /**\n     * Flag to indicate if the place type is a system-level place type\n     */\n    isSystemPlaceType: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { UDFFieldChild } from './uDFFieldChild';\n\n\nexport class PlaceUDFResponse {\n    /**\n     * The place identifier\n     */\n    placeId: number | null | undefined;\n\n    /**\n     * The place code\n     */\n    placeCode: string | null | undefined;\n\n    /**\n     * The place info\n     */\n    placeInfo: string | null | undefined;\n\n    /**\n     * An array of user-defined fields (UDFs)\n     */\n    udfs: Array<UDFFieldChild> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class PmCommodityChild {\n    /**\n     * Commodity code from Portfolio Manager\n     */\n    pmCommodityCode: string | null | undefined;\n\n    /**\n     * When true, auto-created Portfolio Manager meters will be of this commodity\n     */\n    isDefault: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PostalCodeResponseWeatherStation } from './postalCodeResponseWeatherStation';\n\n\nexport class PostalCodeResponse {\n    /**\n     * The postal code\n     */\n    postalCode: string | null | undefined;\n\n    /**\n     * The city of the postal code\n     */\n    city: string | null | undefined;\n\n    /**\n     * The state of the postal code\n     */\n    state: string | null | undefined;\n\n    /**\n     * The country of the postal code\n     */\n    country: string | null | undefined;\n\n    weatherStation: PostalCodeResponseWeatherStation | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class PostalCodeResponseWeatherStation {\n    /**\n     * The weather station Id\n     */\n    weatherStationId: number | null | undefined;\n\n    /**\n     * The web station Id\n     */\n    webStationId: number | null | undefined;\n\n    /**\n     * The weather station code\n     */\n    weatherStationCode: string | null | undefined;\n\n    /**\n     * The city of the weather station\n     */\n    city: string | null | undefined;\n\n    /**\n     * The state of the weather station\n     */\n    state: string | null | undefined;\n\n    /**\n     * The country of the weather station\n     */\n    country: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { GroupDisplaySetting } from './groupDisplaySetting';\nimport { WorkflowDisplaySetting } from './workflowDisplaySetting';\n\n\n/**\n * Preferences specific to the logged-in user\n */\nexport class Preference {\n    /**\n     * Weather degree unit configured for the user's owner\n     */\n    weatherDegreeUnit: number | null | undefined;\n\n    /**\n     * \n     */\n    metersShowInactive: boolean | null | undefined;\n\n    /**\n     * Indicates whether or not to show inactive data points in the Data Points tree\n     */\n    dataPointsShowInactive: boolean | null | undefined;\n\n    /**\n     * Indicates whether or not to show the datasource name\n     */\n    showDataSource: boolean | null | undefined;\n\n    /**\n     *  <span class='property-internal'>One of 'name', 'code', 'namefirst', 'codefirst'</span> <span class='property-internal'>Case sensitive</span>\n     */\n    buildingTreeDisplaySetting: string | null | undefined;\n\n    /**\n     * Indicates whether or not to show inactive accounts in the Accounts tree\n     */\n    accountsShowInactive: boolean | null | undefined;\n\n    /**\n     * Indicates whether or not to show inactive emission sources in the Emission Sources tree\n     */\n    emissionSourcesShowInactive: boolean | null | undefined;\n\n    /**\n     * Name/Code display settings for the Accounts tree <span class='property-internal'>One of 'name', 'code', 'namefirst', 'codefirst'</span> <span class='property-internal'>Case sensitive</span>\n     */\n    costCenterTreeDisplaySetting: string | null | undefined;\n\n    /**\n     * \n     */\n    buildingTreeGroupToDisplay: number | null | undefined;\n\n    /**\n     *  <span class='property-internal'>One of 'name', 'code', 'namefirst', 'codefirst'</span> <span class='property-internal'>Case sensitive</span>\n     */\n    vendorTreeDisplaySetting: string | null | undefined;\n\n    /**\n     * \n     */\n    viewVendorsTreeByCommodity: boolean | null | undefined;\n\n    groupDisplaySetting: GroupDisplaySetting | null | undefined;\n\n    /**\n     * Number of rows to display in bill lists\n     */\n    billListRowsPerPage: number | null | undefined;\n\n    /**\n     * Date format for the user\n     */\n    dateFormat: string | null | undefined;\n\n    /**\n     * Time format for the user\n     */\n    timeFormat: string | null | undefined;\n\n    /**\n     * Code of the default time zone configured for the user's owner\n     */\n    timeZoneCode: string | null | undefined;\n\n    /**\n     * Number of years to display in trend charts when the user views them\n     */\n    trendChartNumberOfYears: number | null | undefined;\n\n    /**\n     * User's language preference\n     */\n    language: string | null | undefined;\n\n    /**\n     * Value to use when displaying a single building or organization (name or code)\n     */\n    buildingAndOrganizationIdentifier: string | null | undefined;\n\n    /**\n     * Value to use when displaying a single meter (name or code)\n     */\n    meterIdentifier: string | null | undefined;\n\n    /**\n     * Value to use when displaying a single account (name or code)\n     */\n    accountIdentifier: string | null | undefined;\n\n    /**\n     * Value to use when displaying generic items (name or code)\n     */\n    otherIdentifier: string | null | undefined;\n\n    /**\n     * Value to use when displaying a single collection (name or code)\n     */\n    collectionIdentifier: string | null | undefined;\n\n    /**\n     * Value to use when displaying a single emission source (name or code)\n     */\n    emissionSourceIdentifier: string | null | undefined;\n\n    /**\n     * Value to use when displaying a single Space (name or code)\n     */\n    spaceIdentifier: string | null | undefined;\n\n    /**\n     * Value to use when displaying a single Data Point (name or code)\n     */\n    dataPointIdentifier: string | null | undefined;\n\n    /**\n     * Indicates whether or not in-app help is open\n     */\n    helpOpen: boolean | null | undefined;\n\n    workflowDisplaySetting: WorkflowDisplaySetting | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { GroupDisplaySetting } from './groupDisplaySetting';\nimport { WorkflowDisplaySetting } from './workflowDisplaySetting';\n\n\n/**\n * Preferences specific to the logged-in user\n */\nexport class PreferenceRequest {\n    /**\n     *  <span class='property-internal'>Required (defined)</span>\n     */\n    metersShowInactive: boolean | null | undefined;\n\n    /**\n     * Indicates whether or not to show inactive data points in the Data Points tree <span class='property-internal'>Required (defined)</span>\n     */\n    dataPointsShowInactive: boolean | null | undefined;\n\n    /**\n     * Indicates whether or not to show the datasource name <span class='property-internal'>Required (defined)</span>\n     */\n    showDataSource: boolean | null | undefined;\n\n    /**\n     *  <span class='property-internal'>One of 'name', 'code', 'namefirst', 'codefirst'</span> <span class='property-internal'>Case sensitive</span> <span class='property-internal'>Required (defined)</span>\n     */\n    buildingTreeDisplaySetting: string | null | undefined;\n\n    /**\n     * Indicates whether or not to show inactive accounts in the Accounts tree <span class='property-internal'>Required (defined)</span>\n     */\n    accountsShowInactive: boolean | null | undefined;\n\n    /**\n     * Indicates whether or not to show inactive emission sources in the Emission Sources tree <span class='property-internal'>Required (defined)</span>\n     */\n    emissionSourcesShowInactive: boolean | null | undefined;\n\n    /**\n     * Name/Code display settings for the Accounts tree <span class='property-internal'>One of 'name', 'code', 'namefirst', 'codefirst'</span> <span class='property-internal'>Case sensitive</span> <span class='property-internal'>Required (defined)</span>\n     */\n    costCenterTreeDisplaySetting: string | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Required (defined)</span>\n     */\n    buildingTreeGroupToDisplay: number | null | undefined;\n\n    /**\n     *  <span class='property-internal'>One of 'name', 'code', 'namefirst', 'codefirst'</span> <span class='property-internal'>Case sensitive</span> <span class='property-internal'>Required (defined)</span>\n     */\n    vendorTreeDisplaySetting: string | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Required (defined)</span>\n     */\n    viewVendorsTreeByCommodity: boolean | null | undefined;\n\n    groupDisplaySetting: GroupDisplaySetting | null | undefined;\n\n    /**\n     * Number of rows to display in bill lists <span class='property-internal'>Required (defined)</span>\n     */\n    billListRowsPerPage: number | null | undefined;\n\n    /**\n     * Date format for the user <span class='property-internal'>Required (defined)</span>\n     */\n    dateFormat: string | null | undefined;\n\n    /**\n     * Time format for the user <span class='property-internal'>Required (defined)</span>\n     */\n    timeFormat: string | null | undefined;\n\n    /**\n     * Code of the default time zone configured for the user's owner <span class='property-internal'>Required (defined)</span>\n     */\n    timeZoneCode: string | null | undefined;\n\n    /**\n     * Number of years to display in trend charts when the user views them <span class='property-internal'>Required (defined)</span>\n     */\n    trendChartNumberOfYears: number | null | undefined;\n\n    /**\n     * User's language preference <span class='property-internal'>Required (defined)</span>\n     */\n    language: string | null | undefined;\n\n    /**\n     * Value to use when displaying a single building or organization (name or code) <span class='property-internal'>Required (defined)</span>\n     */\n    buildingAndOrganizationIdentifier: string | null | undefined;\n\n    /**\n     * Value to use when displaying a single meter (name or code) <span class='property-internal'>Required (defined)</span>\n     */\n    meterIdentifier: string | null | undefined;\n\n    /**\n     * Value to use when displaying a single account (name or code) <span class='property-internal'>Required (defined)</span>\n     */\n    accountIdentifier: string | null | undefined;\n\n    /**\n     * Value to use when displaying generic items (name or code) <span class='property-internal'>Required (defined)</span>\n     */\n    otherIdentifier: string | null | undefined;\n\n    /**\n     * Value to use when displaying a single collection (name or code) <span class='property-internal'>Required (defined)</span>\n     */\n    collectionIdentifier: string | null | undefined;\n\n    /**\n     * Value to use when displaying a single emission source (name or code) <span class='property-internal'>Required (defined)</span>\n     */\n    emissionSourceIdentifier: string | null | undefined;\n\n    /**\n     * Value to use when displaying a single Space (name or code) <span class='property-internal'>Required (defined)</span>\n     */\n    spaceIdentifier: string | null | undefined;\n\n    /**\n     * Value to use when displaying a single Data Point (name or code) <span class='property-internal'>Required (defined)</span>\n     */\n    dataPointIdentifier: string | null | undefined;\n\n    /**\n     * Indicates whether or not in-app help is open <span class='property-internal'>Required (defined)</span>\n     */\n    helpOpen: boolean | null | undefined;\n\n    workflowDisplaySetting: WorkflowDisplaySetting | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class PrimaryUseChild {\n    /**\n     * \n     */\n    primaryUseId: number | null | undefined;\n\n    /**\n     * \n     */\n    primaryUseCode: string | null | undefined;\n\n    /**\n     * \n     */\n    primaryUseInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class PrimaryUseCreate {\n    /**\n     * The Primary Use Code <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 64 characters</span>\n     */\n    primaryUseCode: string | null ;\n\n    /**\n     * The Primary Use Info <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 64 characters</span>\n     */\n    primaryUseInfo: string | null ;\n\n    /**\n     * The Primary Use Type. Possible value include: \\\"place\\\" and \\\"meter\\\" <span class='property-internal'>Required</span> <span class='property-internal'>One of 'place', 'meter'</span>\n     */\n    primaryUseType: string | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class PrimaryUseResponse {\n    /**\n     * \n     */\n    primaryUseId: number | null | undefined;\n\n    /**\n     * \n     */\n    primaryUseCode: string | null | undefined;\n\n    /**\n     * \n     */\n    primaryUseInfo: string | null | undefined;\n\n    /**\n     * \n     */\n    primaryUseType: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ProblemDetails {\n    [key: string]: any | any;\n\n    /**\n     * \n     */\n    type: string | null | undefined;\n\n    /**\n     * \n     */\n    title: string | null | undefined;\n\n    /**\n     * \n     */\n    status: number | null | undefined;\n\n    /**\n     * \n     */\n    detail: string | null | undefined;\n\n    /**\n     * \n     */\n    instance: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class Product {\n    /**\n     * The product identifier\n     */\n    productId: number | null | undefined;\n\n    /**\n     * The product code\n     */\n    productCode: string | null | undefined;\n\n    /**\n     * The product info\n     */\n    productInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ProjectManagerResponse {\n    /**\n     * The full name of project manager\n     */\n    projectManagerFullName: string | null | undefined;\n\n    /**\n     * The code for project manager\n     */\n    projectManagerCode: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class PublicDashboardsOrMaps {\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class PublicDashboardsOrMapsClassPermission {\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class QuickFilter {\n    /**\n     *  <span class='property-internal'>Required</span>\n     */\n    caption: string | null ;\n\n    /**\n     *  <span class='property-internal'>Required</span>\n     */\n    operator: string | null ;\n\n    /**\n     *  <span class='property-internal'>Required</span>\n     */\n    value: string | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { QuickFilter } from './quickFilter';\n\n\nexport class QuickReport {\n    /**\n     * Report code of the report to execute\n     */\n    reportCode: string | null | undefined;\n\n    /**\n     * File name that the report file will receive\n     */\n    fileName: string | null | undefined;\n\n    /**\n     * Desired format for the resulting report. Available options are PDF, Excel, Excel formatted, Excel data only, Word, and CSV. Support for each format varies by report.\n     */\n    format: string | null | undefined;\n\n    /**\n     * The filters to apply to this execution of the report. They will not be saved, and stored filters will not be honored.\n     */\n    filters: Array<QuickFilter> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class RateChild {\n    /**\n     * \n     */\n    rateId: number | null | undefined;\n\n    /**\n     * \n     */\n    name: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CommodityChild } from './commodityChild';\n\n\nexport class RateChildResponse {\n    /**\n     * \n     */\n    rateId: number | null | undefined;\n\n    /**\n     * \n     */\n    name: string | null | undefined;\n\n    commodity: CommodityChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class RateCreate {\n    /**\n     *  <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 255 characters</span>\n     */\n    name: string | null ;\n\n    /**\n     *  <span class='property-internal'>Required</span>\n     */\n    vendorId: number | null ;\n\n    /**\n     *  <span class='property-internal'>Required</span>\n     */\n    commodityId: number | null ;\n\n    /**\n     *  <span class='property-internal'>Must be between 0 and 255 characters</span>\n     */\n    note: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { RateDigestActualYearlyResponseCommodityData } from './rateDigestActualYearlyResponseCommodityData';\nimport { RateDigestActualYearlyResponseResults } from './rateDigestActualYearlyResponseResults';\nimport { UnitChild } from './unitChild';\n\n\nexport class RateDigestActualYearlyResponse {\n    /**\n     * The rate name\n     */\n    name: string | null | undefined;\n\n    /**\n     * The rate identifier\n     */\n    rateId: number | null | undefined;\n\n    globalUseUnit: UnitChild | null | undefined;\n\n    costUnit: UnitChild | null | undefined;\n\n    /**\n     * The date and time the data was updated\n     */\n    updated: Date | null | undefined;\n\n    /**\n     * An array of yearly data\n     */\n    results: Array<RateDigestActualYearlyResponseResults> | null | undefined;\n\n    /**\n     * An array of yearly data per commodity\n     */\n    commodities: Array<RateDigestActualYearlyResponseCommodityData> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { RateDigestActualYearlyResponseCommodityResults } from './rateDigestActualYearlyResponseCommodityResults';\nimport { UnitChild } from './unitChild';\n\n\nexport class RateDigestActualYearlyResponseCommodityData {\n    /**\n     * The commodity code\n     */\n    commodityCode: string | null | undefined;\n\n    /**\n     * The commodity info\n     */\n    commodityInfo: string | null | undefined;\n\n    /**\n     * The commodity identifier\n     */\n    commodityId: number | null | undefined;\n\n    commonUseUnit: UnitChild | null | undefined;\n\n    costUnit: UnitChild | null | undefined;\n\n    /**\n     * An array of yearly data\n     */\n    results: Array<RateDigestActualYearlyResponseCommodityResults> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class RateDigestActualYearlyResponseCommodityResults {\n    /**\n     * year\n     */\n    year: string | null | undefined;\n\n    /**\n     * Total Cost\n     */\n    totalCost: number | null | undefined;\n\n    /**\n     * Common Use\n     */\n    commonUse: number | null | undefined;\n\n    /**\n     * Common Use Unit Cost\n     */\n    commonUseUnitCost: number | null | undefined;\n\n    /**\n     * Global Use\n     */\n    globalUse: number | null | undefined;\n\n    /**\n     * Global Use Unit Cost\n     */\n    globalUseUnitCost: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class RateDigestActualYearlyResponseResults {\n    /**\n     * Year\n     */\n    year: string | null | undefined;\n\n    /**\n     * Total Cost\n     */\n    totalCost: number | null | undefined;\n\n    /**\n     * Global Use\n     */\n    globalUse: number | null | undefined;\n\n    /**\n     * Global Use Unit Cost\n     */\n    globalUseUnitCost: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class RateEdit {\n    /**\n     *  <span class='property-internal'>Must be between 0 and 255 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    name: string | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Must be between 0 and 255 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    note: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CommodityChild } from './commodityChild';\nimport { VendorChild } from './vendorChild';\nimport { VersionResponse } from './versionResponse';\n\n\nexport class RateResponse {\n    /**\n     * \n     */\n    rateId: number | null | undefined;\n\n    /**\n     * \n     */\n    name: string | null | undefined;\n\n    /**\n     * \n     */\n    note: string | null | undefined;\n\n    vendor: VendorChild | null | undefined;\n\n    commodity: CommodityChild | null | undefined;\n\n    /**\n     * \n     */\n    versions: Array<VersionResponse> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class RateSchedules {\n    /**\n     * \n     */\n    create: boolean | null | undefined;\n\n    /**\n     * \n     */\n    edit: boolean | null | undefined;\n\n    /**\n     * \n     */\n    delete: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class RateSchedulesClassPermission {\n    /**\n     * \n     */\n    create: boolean | null | undefined;\n\n    /**\n     * \n     */\n    edit: boolean | null | undefined;\n\n    /**\n     * \n     */\n    delete: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { GenericBodylineRequest } from './genericBodylineRequest';\nimport { UDFValue } from './uDFValue';\n\n\nexport class RateVersionRequest {\n    /**\n     * Effective date for the version <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 1899-12-31 and 3000-01-01</span>\n     */\n    effectiveDate: Date | null ;\n\n    /**\n     * Note for the version <span class='property-internal'>Must be between 0 and 255 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    note: string | null | undefined;\n\n    /**\n     * Unit cost for the use <span class='property-internal'>Required when UseUnitID is set</span> <span class='property-info'>Max scale of 8</span> <span class='property-internal'>NULL Valid</span>\n     */\n    useUnitCost: number | null | undefined;\n\n    /**\n     * Use unit ID <span class='property-internal'>Required when UseUnitCost is set</span>\n     */\n    useUnitId: number | null | undefined;\n\n    /**\n     * Unit cost for the demand <span class='property-internal'>Required when DemandUnitID is set</span> <span class='property-info'>Max scale of 8</span> <span class='property-internal'>NULL Valid</span>\n     */\n    demandUnitCost: number | null | undefined;\n\n    /**\n     * Demand unit ID <span class='property-internal'>Required when DemandUnitCost is set</span>\n     */\n    demandUnitId: number | null | undefined;\n\n    /**\n     * Cost bodylines for the account <span class='property-internal'>Required (defined)</span>\n     */\n    accountLineItems: Array<GenericBodylineRequest> | null | undefined;\n\n    /**\n     * Cost bodylines for the meter <span class='property-internal'>Required (defined)</span>\n     */\n    meterLineItems: Array<GenericBodylineRequest> | null | undefined;\n\n    /**\n     * List of user defined/custom fields and values for this version If the Udfs list is null or empty no values are assigned If a udf is omitted no value is assigned to that udf To remove a value from an existing Udf, pass in the UdfId and set the Value to null <span class='property-internal'>Required (defined)</span>\n     */\n    udfs: Array<UDFValue> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { GenericBodylineResponse } from './genericBodylineResponse';\nimport { UDFFieldChild } from './uDFFieldChild';\nimport { UnitChild } from './unitChild';\nimport { UserChild } from './userChild';\n\n\nexport class RateVersionResponse {\n    /**\n     * ID of the rate schedule version\n     */\n    versionId: number | null | undefined;\n\n    /**\n     * Begin date for the version\n     */\n    beginDate: Date | null | undefined;\n\n    /**\n     * End date for the version\n     */\n    endDate: Date | null | undefined;\n\n    /**\n     * Created date\n     */\n    createdDate: Date | null | undefined;\n\n    /**\n     * Last modified date\n     */\n    modifiedDate: Date | null | undefined;\n\n    /**\n     * Note\n     */\n    note: string | null | undefined;\n\n    createdBy: UserChild | null | undefined;\n\n    modifiedBy: UserChild | null | undefined;\n\n    /**\n     * Unit cost for the use\n     */\n    useUnitCost: number | null | undefined;\n\n    useUnit: UnitChild | null | undefined;\n\n    /**\n     * Unit cost for the demand\n     */\n    demandUnitCost: number | null | undefined;\n\n    demandUnit: UnitChild | null | undefined;\n\n    costUnit: UnitChild | null | undefined;\n\n    /**\n     * Cost bodylines for the account\n     */\n    accountLineItems: Array<GenericBodylineResponse> | null | undefined;\n\n    /**\n     * Cost bodylines for the meter\n     */\n    meterLineItems: Array<GenericBodylineResponse> | null | undefined;\n\n    /**\n     * List of user defined/custom fields and values for this version\n     */\n    udfs: Array<UDFFieldChild> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class Reading {\n    /**\n     * The date and time of the reading <span class='property-internal'>Required</span> <span class='property-internal'>Required</span>\n     */\n    time: Date | null ;\n\n    /**\n     * The reading's value <span class='property-internal'>Required</span> <span class='property-internal'>Required</span>\n     */\n    value: number | null ;\n\n    /**\n     * Indicates if the reading is estimated <span class='property-internal'>Required (defined)</span>\n     */\n    estimated: boolean | null | undefined;\n\n    /**\n     * A note pertaining to the reading <span class='property-internal'>Required (defined)</span>\n     */\n    note: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ReadingChildBase {\n    /**\n     * The unique ID of the reading\n     */\n    observationId: number | null | undefined;\n\n    /**\n     * The date and time of the reading\n     */\n    time: Date | null | undefined;\n\n    /**\n     * The value of the reading\n     */\n    value: number | null | undefined;\n\n    /**\n     * Indicates if the reading is estimated\n     */\n    estimated: boolean | null | undefined;\n\n    /**\n     * A note pertaining to the reading\n     */\n    note: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { Reading } from './reading';\n\n\nexport class ReadingCreate {\n    /**\n     *  Channel Identification       The channel that receives the reading is determined by the following rules:      Direct pointers to a channel     If the channelId is supplied, then import to that channel.     If the channelId is not supplied look at the channelImportId property, which indicates a specific channel. Inferred pointers to a channel     If the channelId and channelImportId are not supplied, look at the meterImportId property, which indicates a meter.If that meter has one channel, import to that channel.     If that meter has more than one channel, find the channel with the same observation type as the observationTypeCode property.If only one is found, import to that channel.     If more than one channel is found based on observation type, find the channel with the same output unit as the unitCode property.If only one is found, import to that channel.     If more than one channel is found based on unit, find the channel with the same channelIntervalInSeconds property. If only one is found, import to that channel. <span class='property-internal'>Topmost (Channel)</span>\n     */\n    channelId: number | null | undefined;\n\n    /**\n     * The import identifier for the channel on which to create the reading. See the channelId property for more information <span class='property-internal'>Must be between 0 and 255 characters</span>\n     */\n    channelImportId: string | null | undefined;\n\n    /**\n     * The import identifier for the meter on which to create the reading. See the channelId property for more information <span class='property-internal'>Must be between 0 and 255 characters</span>\n     */\n    meterImportId: string | null | undefined;\n\n    /**\n     * \n     */\n    channelIntervalInSeconds: number | null | undefined;\n\n    /**\n     * The observationType code of the reading. See the channelId property for more information <span class='property-internal'>Must be between 0 and 16 characters</span>\n     */\n    observationTypeCode: string | null | undefined;\n\n    /**\n     * The unit code of the reading. See the channelId property for more information <span class='property-internal'>Must be between 0 and 16 characters</span>\n     */\n    unitCode: string | null | undefined;\n\n    /**\n     * array of readings <span class='property-internal'>Required</span>\n     */\n    readings: Array<Reading> | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ReadingDelete {\n    /**\n     * The identifier for the channel of the reading <span class='property-internal'>Required</span>\n     */\n    channelId: number | null ;\n\n    /**\n     * The begin date and time of the set of readings to be deleted.  If provided, readings after but NOT including the provided begin date and time will be deleted.\n     */\n    timeBegin: Date | null | undefined;\n\n    /**\n     * The end date and time of the set of readings to be deleted.  If provided, readings up to and including the provided end date and time will be deleted.\n     */\n    timeEnd: Date | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { Estimated } from './estimated';\nimport { ReadingImportProfileColumn } from './readingImportProfileColumn';\n\n\nexport class ReadingImportProfile {\n    /**\n     * The interval of the readings in seconds\n     */\n    channelIntervalInSeconds: number | null | undefined;\n\n    /**\n     * The string that represents how the file contents are delimited.  Valid options are \\\"\\\\t\\\" for tab, \\\" \\\" for space and \\\",\\\" for comma. <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 1 and 2 characters</span> <span class='property-internal'>One of ' ', ' ', ','</span> <span class='property-internal'>Case sensitive</span>\n     */\n    delimiter: string | null ;\n\n    /**\n     * Number of header rows before the data begins <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 2147483647</span>\n     */\n    numberOfHeaderRows: number | null ;\n\n    /**\n     * The number of the column that holds the timestamp <span class='property-internal'>Must be between 1 and 2147483647</span>\n     */\n    timestampColumnNumber: number | null | undefined;\n\n    /**\n     * The format for the timestamp of the readings. An example is MM/dd/yyyy mm:hh:ss:zzz\n     */\n    timestampFormat: string | null | undefined;\n\n    /**\n     * The number of the column that holds the date <span class='property-internal'>Must be between 1 and 2147483647</span>\n     */\n    dateColumnNumber: number | null | undefined;\n\n    /**\n     * The number of the column that holds the time <span class='property-internal'>Must be between 1 and 2147483647</span>\n     */\n    timeColumnNumber: number | null | undefined;\n\n    /**\n     * The format for the date of the readings. An example is MM/dd/yyyy\n     */\n    dateFormat: string | null | undefined;\n\n    /**\n     * The format for the time of the readings. An example is mm:hh:ss:zzz\n     */\n    timeFormat: string | null | undefined;\n\n    /**\n     * The time zone for the readings\n     */\n    timeZoneId: number | null | undefined;\n\n    /**\n     * The number of the column that holds the meter import identifier <span class='property-internal'>Must be between 1 and 2147483647</span>\n     */\n    meterImportIdColumnNumber: number | null | undefined;\n\n    /**\n     * The number of the column that holds the channel import identifier <span class='property-internal'>Must be between 1 and 2147483647</span>\n     */\n    channelImportIdColumnNumber: number | null | undefined;\n\n    /**\n     * The minimum number of columns in the import sheet <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 1 and 2147483647</span>\n     */\n    numberOfColumns: number | null ;\n\n    /**\n     * A list of columns from the import sheet with their observation type and unit\n     */\n    dataMapping: Array<ReadingImportProfileColumn> | null | undefined;\n\n    estimated: Estimated | null | undefined;\n\n    /**\n     * Column number that holds a note to be stored with the reading <span class='property-internal'>Must be between 1 and 2147483647</span>\n     */\n    noteColumnNumber: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ReadingImportProfileColumn {\n    /**\n     * The number of the column <span class='property-internal'>Must be between 1 and 2147483647</span>\n     */\n    columnNumber: number | null | undefined;\n\n    /**\n     * The observation type code of the reading <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 16 characters</span>\n     */\n    observationTypeCode: string | null ;\n\n    /**\n     * The unit code of the reading <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 16 characters</span>\n     */\n    unitCode: string | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { Estimated } from './estimated';\nimport { ReadingImportProfileColumn } from './readingImportProfileColumn';\n\n\nexport class ReadingImportProfileRequest {\n    /**\n     * The profile code <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 64 characters</span>\n     */\n    profileCode: string | null ;\n\n    /**\n     * The interval of the readings in seconds\n     */\n    channelIntervalInSeconds: number | null | undefined;\n\n    /**\n     * The string that represents how the file contents are delimited.  Valid options are \\\"\\\\t\\\" for tab, \\\" \\\" for space and \\\",\\\" for comma. <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 1 and 2 characters</span> <span class='property-internal'>One of ' ', ' ', ','</span> <span class='property-internal'>Case sensitive</span>\n     */\n    delimiter: string | null ;\n\n    /**\n     * Number of header rows before the data begins <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 2147483647</span>\n     */\n    numberOfHeaderRows: number | null ;\n\n    /**\n     * The number of the column that holds the timestamp <span class='property-internal'>Must be between 1 and 2147483647</span>\n     */\n    timestampColumnNumber: number | null | undefined;\n\n    /**\n     * The format for the timestamp of the readings. An example is MM/dd/yyyy mm:hh:ss:zzz\n     */\n    timestampFormat: string | null | undefined;\n\n    /**\n     * The number of the column that holds the date <span class='property-internal'>Must be between 1 and 2147483647</span>\n     */\n    dateColumnNumber: number | null | undefined;\n\n    /**\n     * The number of the column that holds the time <span class='property-internal'>Must be between 1 and 2147483647</span>\n     */\n    timeColumnNumber: number | null | undefined;\n\n    /**\n     * The format for the date of the readings. An example is MM/dd/yyyy\n     */\n    dateFormat: string | null | undefined;\n\n    /**\n     * The format for the time of the readings. An example is mm:hh:ss:zzz\n     */\n    timeFormat: string | null | undefined;\n\n    /**\n     * The time zone for the readings\n     */\n    timeZoneId: number | null | undefined;\n\n    /**\n     * The number of the column that holds the meter import identifier <span class='property-internal'>Must be between 1 and 2147483647</span>\n     */\n    meterImportIdColumnNumber: number | null | undefined;\n\n    /**\n     * The number of the column that holds the channel import identifier <span class='property-internal'>Must be between 1 and 2147483647</span>\n     */\n    channelImportIdColumnNumber: number | null | undefined;\n\n    /**\n     * The minimum number of columns in the import sheet <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 1 and 2147483647</span>\n     */\n    numberOfColumns: number | null ;\n\n    /**\n     * A list of columns from the import sheet with their observation type and unit\n     */\n    dataMapping: Array<ReadingImportProfileColumn> | null | undefined;\n\n    estimated: Estimated | null | undefined;\n\n    /**\n     * Column number that holds a note to be stored with the reading <span class='property-internal'>Must be between 1 and 2147483647</span>\n     */\n    noteColumnNumber: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { Estimated } from './estimated';\nimport { ReadingImportProfileColumn } from './readingImportProfileColumn';\nimport { TimeZoneChild } from './timeZoneChild';\nimport { UserChild } from './userChild';\n\n\nexport class ReadingImportProfileResponse {\n    /**\n     * The profile Identifier\n     */\n    profileId: number | null | undefined;\n\n    /**\n     * The profile code\n     */\n    profileCode: string | null | undefined;\n\n    createdBy: UserChild | null | undefined;\n\n    /**\n     * The number of the column that holds the Meter import identifier\n     */\n    meterImportIdColumnNumber: number | null | undefined;\n\n    /**\n     * The number of the column that holds the Channel import identifier\n     */\n    channelImportIdColumnNumber: number | null | undefined;\n\n    /**\n     * The total number of columns in the import sheet\n     */\n    numberOfColumns: number | null | undefined;\n\n    /**\n     * The interval of the readings\n     */\n    channelIntervalInSeconds: number | null | undefined;\n\n    /**\n     * The string that represents how the file contents are delimited.  Valid options are \\\"\\\\t\\\" for tab, \\\" \\\" for space and \\\",\\\" for comma.\n     */\n    delimiter: string | null | undefined;\n\n    /**\n     * Number of header rows before the data begins\n     */\n    numberOfHeaderRows: number | null | undefined;\n\n    /**\n     * The number of the column that holds the timestamp\n     */\n    timestampColumnNumber: number | null | undefined;\n\n    /**\n     * The format for the timestamp of the readings. An example is MM/dd/yyyy mm:hh:ss:zzz\n     */\n    timestampFormat: string | null | undefined;\n\n    /**\n     * The number of the column that holds the date\n     */\n    dateColumnNumber: number | null | undefined;\n\n    /**\n     * The number of the column that holds the time\n     */\n    timeColumnNumber: number | null | undefined;\n\n    /**\n     * The format for the date of the readings. An example is MM/dd/yyyy\n     */\n    dateFormat: string | null | undefined;\n\n    /**\n     * The format for the time of the readings. An example is mm:hh:ss:zzz\n     */\n    timeFormat: string | null | undefined;\n\n    timeZone: TimeZoneChild | null | undefined;\n\n    /**\n     * A list of columns from the import sheet with their observation type and unit\n     */\n    dataMapping: Array<ReadingImportProfileColumn> | null | undefined;\n\n    estimated: Estimated | null | undefined;\n\n    /**\n     * Column number that holds a note to be stored with the reading\n     */\n    noteColumnNumber: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { ReadingImportProfile } from './readingImportProfile';\n\n\nexport class ReadingImportRequest {\n    /**\n     * A reading import data profile code.\n     */\n    profileCode: string | null | undefined;\n\n    inlineProfile: ReadingImportProfile | null | undefined;\n\n    /**\n     * The base64 encoded file. <span class='property-internal'>Required</span>\n     */\n    data: string | null ;\n\n    /**\n     * Create new channels if they don't exist?\n     */\n    autoCreateChannels: boolean | null | undefined;\n\n    /**\n     * Optional note/comment.\n     */\n    importNote: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { FailedReadingResponse } from './failedReadingResponse';\n\n\nexport class ReadingResponse {\n    /**\n     * The number of successfully imported readings\n     */\n    importedReadingsCount: number | null | undefined;\n\n    /**\n     * The number of failed reading imports\n     */\n    failedReadingsCount: number | null | undefined;\n\n    /**\n     * Data representing the failed reading imports\n     */\n    failedReadings: Array<FailedReadingResponse> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { ReadingsObservation } from './readingsObservation';\nimport { UnitChild } from './unitChild';\n\n\nexport class Readings {\n    /**\n     * The Id of the Channel\n     */\n    channelId: number | null | undefined;\n\n    /**\n     * 1 = odometer, 2 = trip (to calculate delta)\n     */\n    rule: number | null | undefined;\n\n    unit: UnitChild | null | undefined;\n\n    /**\n     * \n     */\n    readings: Array<ReadingsObservation> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ReadingsObservation {\n    /**\n     * The unique ID for the reading <span class='property-internal'>Required (defined)</span>\n     */\n    observationId: number | null | undefined;\n\n    /**\n     * The date and time of the reading <span class='property-internal'>Required (defined)</span>\n     */\n    time: Date | null | undefined;\n\n    /**\n     * The raw or computed value of the reading <span class='property-internal'>Required (defined)</span>\n     */\n    value: number | null | undefined;\n\n    /**\n     * The raw value of the reading (before multiplier or delta are applied) <span class='property-internal'>Required (defined)</span>\n     */\n    rawValue: number | null | undefined;\n\n    /**\n     * Indicates if the reading is estimated <span class='property-internal'>Required (defined)</span>\n     */\n    estimated: boolean | null | undefined;\n\n    /**\n     * A note pertaining to the reading <span class='property-internal'>Required (defined)</span>\n     */\n    note: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class RecordImportProfile {\n    /**\n     * The format for the record start/end dates. It represents the regional convention for the order of day, month, and year. It is not a date format itself. <span class='property-internal'>Required</span> <span class='property-internal'>One of 'MM/dd/yyyy', 'dd/MM/yyyy', 'yyyy/MM/dd'</span> <span class='property-internal'>Case sensitive</span>\n     */\n    dateFormat: string | null ;\n\n    /**\n     * The number of header rows before the data begins <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 9</span>\n     */\n    numberOfHeaderRows: number | null ;\n\n    /**\n     * Flag to indicate if new emission sources or suppliers should be created if they do not already exist <span class='property-internal'>Required</span>\n     */\n    createNewEntities: boolean | null ;\n\n    /**\n     * Optional notes field <span class='property-internal'>Max length of 255</span>\n     */\n    notes: string | null | undefined;\n\n    /**\n     * The index of the column that holds the emission source code <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 1 and 104</span>\n     */\n    emissionSourceCodeColumnIndex: number | null ;\n\n    /**\n     * The index of the column that holds the emission source name <span class='property-internal'>Must be between 1 and 104</span> <span class='property-internal'>Required when CreateNewEntities is set to True, case sensitive.</span> <span class='property-internal'>Must be null when CreateNewEntities  is  set to False, case sensitive</span>\n     */\n    emissionSourceNameColumnIndex: number | null | undefined;\n\n    /**\n     * The index of the column that holds the emission source type <span class='property-internal'>Must be between 1 and 104</span> <span class='property-internal'>Required when CreateNewEntities is set to True, case sensitive.</span> <span class='property-internal'>Must be null when CreateNewEntities  is  set to False, case sensitive</span>\n     */\n    emissionSourceTypeColumnIndex: number | null | undefined;\n\n    /**\n     * The index of the column that holds the emission record start date <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 1 and 104</span>\n     */\n    startDateColumnIndex: number | null ;\n\n    /**\n     * The index of the column that holds the emission record end date <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 1 and 104</span>\n     */\n    endDateColumnIndex: number | null ;\n\n    /**\n     * The index of the column that holds the supplier name. This field is optional <span class='property-internal'>Must be between 1 and 104</span>\n     */\n    supplierColumnIndex: number | null | undefined;\n\n    /**\n     * The index of the column that holds the notes for a record. This field is optional <span class='property-internal'>Must be between 1 and 104</span>\n     */\n    notesColumnIndex: number | null | undefined;\n\n    /**\n     * The index of the column that holds the use for a record.  Required if no value is set for either the Cost Or Direct/Offset column numbers <span class='property-internal'>Must be between 1 and 104</span> <span class='property-internal'>At least one of UseColumnIndex, CostColumnIndex, DirectOffsetColumnIndex must not be null</span>\n     */\n    useColumnIndex: number | null | undefined;\n\n    /**\n     * The identifier for the use unit to use. Required if UseColumnIndex is set <span class='property-internal'>Required when UseColumnIndex is set</span>\n     */\n    useUnitId: number | null | undefined;\n\n    /**\n     * The index of the column that holds the cost for a record.  Required if no value is set for either the Use Or Direct/Offset column numbers <span class='property-internal'>Must be between 1 and 104</span> <span class='property-internal'>At least one of UseColumnIndex, CostColumnIndex, DirectOffsetColumnIndex must not be null</span>\n     */\n    costColumnIndex: number | null | undefined;\n\n    /**\n     * The identifier for the cost unit to use. Required if CostColumnIndex is set <span class='property-internal'>Required when CostColumnIndex is set</span>\n     */\n    costUnitId: number | null | undefined;\n\n    /**\n     * The index of the column that holds direct emissions/emission offsets for a record.  Required if no value is set for either the Use Or Cost column numbers <span class='property-internal'>Must be between 1 and 104</span> <span class='property-internal'>At least one of UseColumnIndex, CostColumnIndex, DirectOffsetColumnIndex must not be null</span>\n     */\n    directOffsetColumnIndex: number | null | undefined;\n\n    /**\n     * The identifier for the direct emissions/emission offset unit to use. Required if DirectOffsetColumnIndex is set <span class='property-internal'>Required when DirectOffsetColumnIndex is set</span>\n     */\n    directOffsetUnitId: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class RecordImportProfileEdit {\n    /**\n     * Name of the import profile <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 64 characters</span>\n     */\n    profileCode: string | null ;\n\n    /**\n     * The format for the record start/end dates. It represents the regional convention for the order of day, month, and year. It is not a date format itself. <span class='property-internal'>Required</span> <span class='property-internal'>One of 'MM/dd/yyyy', 'dd/MM/yyyy', 'yyyy/MM/dd'</span> <span class='property-internal'>Case sensitive</span>\n     */\n    dateFormat: string | null ;\n\n    /**\n     * The number of header rows before the data begins <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 9</span>\n     */\n    numberOfHeaderRows: number | null ;\n\n    /**\n     * Flag to indicate if new emission sources or suppliers should be created if they do not already exist <span class='property-internal'>Required</span>\n     */\n    createNewEntities: boolean | null ;\n\n    /**\n     * Optional notes field <span class='property-internal'>Max length of 255</span> <span class='property-internal'>Required (defined)</span>\n     */\n    notes: string | null | undefined;\n\n    /**\n     * The index of the column that holds the emission source code <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 1 and 104</span>\n     */\n    emissionSourceCodeColumnIndex: number | null ;\n\n    /**\n     * The index of the column that holds the emission source name <span class='property-internal'>Must be between 1 and 104</span> <span class='property-internal'>Required when CreateNewEntities is set to True, case sensitive.</span> <span class='property-internal'>Must be null when CreateNewEntities  is  set to False, case sensitive</span>\n     */\n    emissionSourceNameColumnIndex: number | null | undefined;\n\n    /**\n     * The index of the column that holds the emission source type <span class='property-internal'>Must be between 1 and 104</span> <span class='property-internal'>Required when CreateNewEntities is set to True, case sensitive.</span> <span class='property-internal'>Must be null when CreateNewEntities  is  set to False, case sensitive</span>\n     */\n    emissionSourceTypeColumnIndex: number | null | undefined;\n\n    /**\n     * The index of the column that holds the emission record start date <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 1 and 104</span>\n     */\n    startDateColumnIndex: number | null ;\n\n    /**\n     * The index of the column that holds the emission record end date <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 1 and 104</span>\n     */\n    endDateColumnIndex: number | null ;\n\n    /**\n     * The index of the column that holds the supplier name. This field is optional <span class='property-internal'>Must be between 1 and 104</span> <span class='property-internal'>Required (defined)</span>\n     */\n    supplierColumnIndex: number | null | undefined;\n\n    /**\n     * The index of the column that holds the notes for a record. This field is optional <span class='property-internal'>Must be between 1 and 104</span> <span class='property-internal'>Required (defined)</span>\n     */\n    notesColumnIndex: number | null | undefined;\n\n    /**\n     * The index of the column that holds the use for a record.  Required if no value is set for either the Cost Or Direct/Offset column numbers <span class='property-internal'>Must be between 1 and 104</span> <span class='property-internal'>At least one of UseColumnIndex, CostColumnIndex, DirectOffsetColumnIndex must not be null</span>\n     */\n    useColumnIndex: number | null | undefined;\n\n    /**\n     * The identifier for the use unit to use. Required if UseColumnIndex is set <span class='property-internal'>Required when UseColumnIndex is set</span>\n     */\n    useUnitId: number | null | undefined;\n\n    /**\n     * The index of the column that holds the cost for a record.  Required if no value is set for either the Use Or Direct/Offset column numbers <span class='property-internal'>Must be between 1 and 104</span> <span class='property-internal'>At least one of UseColumnIndex, CostColumnIndex, DirectOffsetColumnIndex must not be null</span>\n     */\n    costColumnIndex: number | null | undefined;\n\n    /**\n     * The identifier for the cost unit to use. Required if CostColumnIndex is set <span class='property-internal'>Required when CostColumnIndex is set</span>\n     */\n    costUnitId: number | null | undefined;\n\n    /**\n     * The index of the column that holds direct emissions/emission offsets for a record.  Required if no value is set for either the Use Or Cost column numbers <span class='property-internal'>Must be between 1 and 104</span> <span class='property-internal'>At least one of UseColumnIndex, CostColumnIndex, DirectOffsetColumnIndex must not be null</span>\n     */\n    directOffsetColumnIndex: number | null | undefined;\n\n    /**\n     * The identifier for the direct emissions/emission offset unit to use. Required if DirectOffsetColumnIndex is set <span class='property-internal'>Required when DirectOffsetColumnIndex is set</span>\n     */\n    directOffsetUnitId: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class RecordImportProfileRequest {\n    /**\n     * Name of the import profile <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 64 characters</span>\n     */\n    profileCode: string | null ;\n\n    /**\n     * The format for the record start/end dates. It represents the regional convention for the order of day, month, and year. It is not a date format itself. <span class='property-internal'>Required</span> <span class='property-internal'>One of 'MM/dd/yyyy', 'dd/MM/yyyy', 'yyyy/MM/dd'</span> <span class='property-internal'>Case sensitive</span>\n     */\n    dateFormat: string | null ;\n\n    /**\n     * The number of header rows before the data begins <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 9</span>\n     */\n    numberOfHeaderRows: number | null ;\n\n    /**\n     * Flag to indicate if new emission sources or suppliers should be created if they do not already exist <span class='property-internal'>Required</span>\n     */\n    createNewEntities: boolean | null ;\n\n    /**\n     * Optional notes field <span class='property-internal'>Max length of 255</span>\n     */\n    notes: string | null | undefined;\n\n    /**\n     * The index of the column that holds the emission source code <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 1 and 104</span>\n     */\n    emissionSourceCodeColumnIndex: number | null ;\n\n    /**\n     * The index of the column that holds the emission source name <span class='property-internal'>Must be between 1 and 104</span> <span class='property-internal'>Required when CreateNewEntities is set to True, case sensitive.</span> <span class='property-internal'>Must be null when CreateNewEntities  is  set to False, case sensitive</span>\n     */\n    emissionSourceNameColumnIndex: number | null | undefined;\n\n    /**\n     * The index of the column that holds the emission source type <span class='property-internal'>Must be between 1 and 104</span> <span class='property-internal'>Required when CreateNewEntities is set to True, case sensitive.</span> <span class='property-internal'>Must be null when CreateNewEntities  is  set to False, case sensitive</span>\n     */\n    emissionSourceTypeColumnIndex: number | null | undefined;\n\n    /**\n     * The index of the column that holds the emission record start date <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 1 and 104</span>\n     */\n    startDateColumnIndex: number | null ;\n\n    /**\n     * The index of the column that holds the emission record end date <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 1 and 104</span>\n     */\n    endDateColumnIndex: number | null ;\n\n    /**\n     * The index of the column that holds the supplier name. This field is optional <span class='property-internal'>Must be between 1 and 104</span>\n     */\n    supplierColumnIndex: number | null | undefined;\n\n    /**\n     * The index of the column that holds the notes for a record. This field is optional <span class='property-internal'>Must be between 1 and 104</span>\n     */\n    notesColumnIndex: number | null | undefined;\n\n    /**\n     * The index of the column that holds the use for a record.  Required if no value is set for either the Cost Or Direct/Offset column numbers <span class='property-internal'>Must be between 1 and 104</span> <span class='property-internal'>At least one of UseColumnIndex, CostColumnIndex, DirectOffsetColumnIndex must not be null</span>\n     */\n    useColumnIndex: number | null | undefined;\n\n    /**\n     * The identifier for the use unit to use. Required if UseColumnIndex is set <span class='property-internal'>Required when UseColumnIndex is set</span>\n     */\n    useUnitId: number | null | undefined;\n\n    /**\n     * The index of the column that holds the cost for a record.  Required if no value is set for either the Use Or Direct/Offset column numbers <span class='property-internal'>Must be between 1 and 104</span> <span class='property-internal'>At least one of UseColumnIndex, CostColumnIndex, DirectOffsetColumnIndex must not be null</span>\n     */\n    costColumnIndex: number | null | undefined;\n\n    /**\n     * The identifier for the cost unit to use. Required if CostColumnIndex is set <span class='property-internal'>Required when CostColumnIndex is set</span>\n     */\n    costUnitId: number | null | undefined;\n\n    /**\n     * The index of the column that holds direct emissions/emission offsets for a record.  Required if no value is set for either the Use Or Cost column numbers <span class='property-internal'>Must be between 1 and 104</span> <span class='property-internal'>At least one of UseColumnIndex, CostColumnIndex, DirectOffsetColumnIndex must not be null</span>\n     */\n    directOffsetColumnIndex: number | null | undefined;\n\n    /**\n     * The identifier for the direct emissions/emission offset unit to use. Required if DirectOffsetColumnIndex is set <span class='property-internal'>Required when DirectOffsetColumnIndex is set</span>\n     */\n    directOffsetUnitId: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { UnitChild } from './unitChild';\nimport { UserChild } from './userChild';\n\n\nexport class RecordImportProfileResponse {\n    /**\n     * Identifier of the record import profile\n     */\n    profileId: number | null | undefined;\n\n    /**\n     * Name of the import profile\n     */\n    profileCode: string | null | undefined;\n\n    createdBy: UserChild | null | undefined;\n\n    /**\n     * The date and time the import profile was modified\n     */\n    createdDate: Date | null | undefined;\n\n    modifiedBy: UserChild | null | undefined;\n\n    /**\n     * The date and time the import profile was modified\n     */\n    modifiedDate: Date | null | undefined;\n\n    /**\n     * The format for the record start/end dates\n     */\n    dateFormat: string | null | undefined;\n\n    /**\n     * The number of header rows before the data begins\n     */\n    numberOfHeaderRows: number | null | undefined;\n\n    /**\n     * Flag to indicate if new emission sources or suppliers should be created if they do not already exist\n     */\n    createNewEntities: boolean | null | undefined;\n\n    /**\n     * Optional notes field\n     */\n    notes: string | null | undefined;\n\n    /**\n     * The index of the column that holds the emission source code\n     */\n    emissionSourceCodeColumnIndex: number | null | undefined;\n\n    /**\n     * The index of the column that holds the emission source name\n     */\n    emissionSourceNameColumnIndex: number | null | undefined;\n\n    /**\n     * The index of the column that holds the emission source type\n     */\n    emissionSourceTypeColumnIndex: number | null | undefined;\n\n    /**\n     * The index of the column that holds the emission record start date\n     */\n    startDateColumnIndex: number | null | undefined;\n\n    /**\n     * The index of the column that holds the emission record end date\n     */\n    endDateColumnIndex: number | null | undefined;\n\n    /**\n     * The index of the column that holds the supplier name\n     */\n    supplierColumnIndex: number | null | undefined;\n\n    /**\n     * The index of the column that holds the notes for a record\n     */\n    notesColumnIndex: number | null | undefined;\n\n    /**\n     * The index of the column that holds the use for a record\n     */\n    useColumnIndex: number | null | undefined;\n\n    useUnit: UnitChild | null | undefined;\n\n    /**\n     * The index of the column that holds the cost for a record\n     */\n    costColumnIndex: number | null | undefined;\n\n    costUnit: UnitChild | null | undefined;\n\n    /**\n     * The index of the column that holds direct emissions/emission offsets for a record\n     */\n    directOffsetColumnIndex: number | null | undefined;\n\n    directOffsetUnit: UnitChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { RecordImportProfile } from './recordImportProfile';\n\n\nexport class RecordImportRequest {\n    /**\n     * Name of the import profile <span class='property-internal'>Must be between 0 and 64 characters</span> <span class='property-internal'>Only one of ProfileCode, InlineProfile can be set</span>\n     */\n    profileCode: string | null | undefined;\n\n    inlineProfile: RecordImportProfile | null | undefined;\n\n    /**\n     * FileName for the import file. Should include extension. The extension allows the importer to read the data in the proper format (csv, xlsx) <span class='property-internal'>Required</span>\n     */\n    fileName: string | null ;\n\n    /**\n     * The base64 encoded file <span class='property-internal'>Required</span>\n     */\n    fileContent: string | null ;\n\n    /**\n     * Optional note/comment.\n     */\n    importNote: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class Records {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    create: boolean | null | undefined;\n\n    /**\n     * \n     */\n    edit: boolean | null | undefined;\n\n    /**\n     * \n     */\n    delete: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class RecordsClassPermission {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    create: boolean | null | undefined;\n\n    /**\n     * \n     */\n    edit: boolean | null | undefined;\n\n    /**\n     * \n     */\n    delete: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class RecordsListAdministrator {\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class RecordsListAdministratorClassPermission {\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class RecordsModule {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class RecordsModuleClassPermission {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class RelatedReportResponse {\n    /**\n     * Specific report id of the related report\n     */\n    specificReportId: number | null | undefined;\n\n    /**\n     * Name of the related report\n     */\n    name: string | null | undefined;\n\n    /**\n     * Description of the related report\n     */\n    description: string | null | undefined;\n\n    /**\n     * The rendering engine used for the report (EnergyCAP currently uses SSRS and Crystal)\n     */\n    reportSource: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class ReportAdministrator {\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ReportAdministratorClassPermission {\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ReportCategoryChild {\n    /**\n     * \n     */\n    reportCategoryId: number | null | undefined;\n\n    /**\n     * \n     */\n    reportCategoryCode: string | null | undefined;\n\n    /**\n     * \n     */\n    reportCategoryInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { ExportFormatChild } from './exportFormatChild';\nimport { ReportType } from './reportType';\nimport { TagChild } from './tagChild';\n\n\nexport class ReportChild {\n    /**\n     * The version of the report\n     */\n    version: string | null | undefined;\n\n    /**\n     * The identifier of the report\n     */\n    reportId: number | null | undefined;\n\n    /**\n     * The report code\n     */\n    reportCode: string | null | undefined;\n\n    /**\n     * The report name\n     */\n    reportInfo: string | null | undefined;\n\n    reportType: ReportType | null | undefined;\n\n    /**\n     * The report description\n     */\n    description: string | null | undefined;\n\n    /**\n     * Indicates whether or not the report is rendered in landscape\n     */\n    isLandscape: boolean | null | undefined;\n\n    /**\n     * The last time this report was updated\n     */\n    lastUpdated: Date | null | undefined;\n\n    /**\n     * Tags describing features of the report\n     */\n    tags: Array<TagChild> | null | undefined;\n\n    /**\n     * Supported export formats (EnergyCAP currently supports PDF, Word, Excel, Excel data only, Excel formatted, and CSV)\n     */\n    exportFormats: Array<ExportFormatChild> | null | undefined;\n\n    /**\n     * The rendering engine used for the report (EnergyCAP currently uses SSRS and Crystal)\n     */\n    reportSource: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ReportCreate {\n    /**\n     * New specific report code <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 255 characters</span>\n     */\n    reportCode: string | null ;\n\n    /**\n     * New specific report name <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 255 characters</span>\n     */\n    reportInfo: string | null ;\n\n    /**\n     * New specific report description <span class='property-internal'>Required</span>\n     */\n    reportDescription: string | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { UserChild } from './userChild';\n\n\nexport class ReportDistributionChild {\n    /**\n     * The id of the report distribution\n     */\n    reportDistributionId: number | null | undefined;\n\n    /**\n     * The name of the report distribution\n     */\n    reportDistributionName: string | null | undefined;\n\n    /**\n     * The report code to run as part of the report distribution\n     */\n    reportCode: string | null | undefined;\n\n    createdByUser: UserChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { FilterEdit } from './filterEdit';\n\n\nexport class ReportDistributionCreateRequest {\n    /**\n     * The id of the report to distribute A new copy of the report will be created for the distribution with the filters specified in this request Any changes to the existing report will not effect the distribution copy Only SSRS reports are supported <span class='property-internal'>Required</span>\n     */\n    specificReportId: number | null ;\n\n    /**\n     * The name of the report distribution <span class='property-internal'>Must be between 0 and 255 characters</span> <span class='property-internal'>Required</span>\n     */\n    reportDistributionName: string | null ;\n\n    /**\n     * List of filters to apply to the report <span class='property-internal'>Required</span>\n     */\n    reportFilters: Array<FilterEdit> | null ;\n\n    /**\n     * The email address the receiver should reply to <span class='property-internal'>Must be between 0 and 128 characters</span>\n     */\n    replyToEmail: string | null | undefined;\n\n    /**\n     * The id of each user group that should receive the report <span class='property-internal'>Cannot be Empty</span> <span class='property-internal'>Required</span>\n     */\n    recipientUserGroupIds: Array<number> | null ;\n\n    /**\n     * The subject line of the email <span class='property-internal'>Must be between 0 and 255 characters</span> <span class='property-internal'>Required</span>\n     */\n    emailSubject: string | null ;\n\n    /**\n     * The body of the email <span class='property-internal'>Required</span>\n     */\n    emailMessage: string | null ;\n\n    /**\n     * The schedule type of the report Values may be: Daily: 1 Weekly: 2 Monthly: 3 Quarterly: 4 <span class='property-internal'>Required</span> <span class='property-internal'>One of '1', '2', '3', '4'</span> <span class='property-internal'>Case sensitive</span>\n     */\n    reportSubscriptionScheduleTypeId: number | null ;\n\n    /**\n     * Indicates when to send the report for the given schedule type Values may be:  Daily: 0 Weekly: Day of Week - 0 (Sunday) to 6 (Saturday) Monthly: Day of Month - 1 to 28 Quarterly: Month in Quarter - 1, 2, or 3 <span class='property-internal'>Must be between 0 and 28</span> <span class='property-internal'>Required</span>\n     */\n    dayIndicatorValue: number | null ;\n\n    /**\n     * Indicates whether or not to email a report if it contains no data. When set to true, the subscribed report will not be emailed, if the report does not contain data. When set to false, if the requested report has no data, it will still be sent. <span class='property-internal'>Required</span>\n     */\n    onlySendIfData: boolean | null ;\n\n    /**\n     * The format in which the generated report should be downloaded <span class='property-internal'>Required</span> <span class='property-internal'>One of 'Excel', 'Excel data only', 'Csv', 'PDF', 'Word'</span>\n     */\n    reportFormat: string | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { ReportChild } from './reportChild';\nimport { ReportDistributionEmailSettings } from './reportDistributionEmailSettings';\nimport { UserChild } from './userChild';\n\n\nexport class ReportDistributionDetailsResponse {\n    /**\n     * The id of the report distribution\n     */\n    reportDistributionId: number | null | undefined;\n\n    /**\n     * The name of the report distribution\n     */\n    reportDistributionName: string | null | undefined;\n\n    createdByUser: UserChild | null | undefined;\n\n    /**\n     * The date and time the report distribution was created\n     */\n    createdDate: Date | null | undefined;\n\n    modifiedByUser: UserChild | null | undefined;\n\n    /**\n     * The date and time of the most recent modification\n     */\n    modifiedDate: Date | null | undefined;\n\n    /**\n     * Last time the report distribution was run\n     */\n    lastRunDate: Date | null | undefined;\n\n    /**\n     * Next time the report distribution will run\n     */\n    nextRunDate: Date | null | undefined;\n\n    /**\n     * Indicates if the report distribution is currently enabled\n     */\n    enabled: boolean | null | undefined;\n\n    /**\n     * The id of the report being distributed\n     */\n    specificReportId: number | null | undefined;\n\n    baseReport: ReportChild | null | undefined;\n\n    emailSettings: ReportDistributionEmailSettings | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { FilterEdit } from './filterEdit';\n\n\nexport class ReportDistributionEditRequest {\n    /**\n     * Indicates if the report distribution is currently enabled <span class='property-internal'>Required</span>\n     */\n    enabled: boolean | null ;\n\n    /**\n     * The name of the report distribution <span class='property-internal'>Must be between 0 and 255 characters</span> <span class='property-internal'>Required</span>\n     */\n    reportDistributionName: string | null ;\n\n    /**\n     * List of filters to apply to the report <span class='property-internal'>Required</span>\n     */\n    reportFilters: Array<FilterEdit> | null ;\n\n    /**\n     * The email address the receiver should reply to <span class='property-internal'>Must be between 0 and 128 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    replyToEmail: string | null | undefined;\n\n    /**\n     * The id of each user group that should receive the report <span class='property-internal'>Cannot be Empty</span> <span class='property-internal'>Required</span>\n     */\n    recipientUserGroupIds: Array<number> | null ;\n\n    /**\n     * The subject line of the email <span class='property-internal'>Must be between 0 and 255 characters</span> <span class='property-internal'>Required</span>\n     */\n    emailSubject: string | null ;\n\n    /**\n     * The body of the email <span class='property-internal'>Required</span>\n     */\n    emailMessage: string | null ;\n\n    /**\n     * The schedule type of the report Values may be: Daily: 1 Weekly: 2 Monthly: 3 Quarterly: 4 <span class='property-internal'>Required</span> <span class='property-internal'>One of '1', '2', '3', '4'</span> <span class='property-internal'>Case sensitive</span>\n     */\n    reportSubscriptionScheduleTypeId: number | null ;\n\n    /**\n     * Indicates when to send the report for the given schedule type Values may be:  Daily: 0 Weekly: Day of Week - 0 (Sunday) to 6 (Saturday) Monthly: Day of Month - 1 to 28 Quarterly: Month in Quarter - 1, 2, or 3 <span class='property-internal'>Must be between 0 and 28</span> <span class='property-internal'>Required</span>\n     */\n    dayIndicatorValue: number | null ;\n\n    /**\n     * Indicates whether or not to email a report if it contains no data. When set to true, the subscribed report will not be emailed, if the report does not contain data. When set to false, if the requested report has no data, it will still be sent. <span class='property-internal'>Required</span>\n     */\n    onlySendIfData: boolean | null ;\n\n    /**\n     * The format in which the generated report should be downloaded <span class='property-internal'>Required</span> <span class='property-internal'>One of 'Excel', 'Excel data only', 'Csv', 'PDF', 'Word'</span>\n     */\n    reportFormat: string | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { ReportSubscriptionDayIndicatorChild } from './reportSubscriptionDayIndicatorChild';\nimport { ReportSubscriptionScheduleTypeChild } from './reportSubscriptionScheduleTypeChild';\nimport { UserGroupChild } from './userGroupChild';\n\n\nexport class ReportDistributionEmailSettings {\n    /**\n     * The email address the receiver should reply to\n     */\n    replyToEmail: string | null | undefined;\n\n    /**\n     * The list of user groups that should receive the report\n     */\n    recipientUserGroups: Array<UserGroupChild> | null | undefined;\n\n    /**\n     * The subject line of the email\n     */\n    emailSubject: string | null | undefined;\n\n    /**\n     * The body of the email\n     */\n    emailMessage: string | null | undefined;\n\n    /**\n     * Format of the report (EnergyCAP currently supports PDF, Word, Excel, and CSV)\n     */\n    reportFormat: string | null | undefined;\n\n    scheduleType: ReportSubscriptionScheduleTypeChild | null | undefined;\n\n    dayIndicator: ReportSubscriptionDayIndicatorChild | null | undefined;\n\n    /**\n     * Indicates whether or not to email a report if it contains no data. When set to true, the subscribed report will not be emailed, if the report does not contain data. When set to false, if the requested report has no data, it will still be sent.\n     */\n    onlySendIfData: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { ReportDistributionLogEmailSettings } from './reportDistributionLogEmailSettings';\nimport { ReportDistributionLogReportSettings } from './reportDistributionLogReportSettings';\n\n\nexport class ReportDistributionLogDetailsResponse {\n    emailSettings: ReportDistributionLogEmailSettings | null | undefined;\n\n    reportSettings: ReportDistributionLogReportSettings | null | undefined;\n\n    /**\n     * Detailed errors that may have occurred during report distribution run\n     */\n    errors: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { ReportSubscriptionDayIndicatorChild } from './reportSubscriptionDayIndicatorChild';\nimport { ReportSubscriptionScheduleTypeChild } from './reportSubscriptionScheduleTypeChild';\nimport { UserGroupWithMembers } from './userGroupWithMembers';\n\n\nexport class ReportDistributionLogEmailSettings {\n    /**\n     * The email address the the email was sent from\n     */\n    sentFromEmail: string | null | undefined;\n\n    /**\n     * The list of user groups with members that should receive the report\n     */\n    recipientUserGroups: Array<UserGroupWithMembers> | null | undefined;\n\n    /**\n     * The email address the receiver should reply to\n     */\n    replyToEmail: string | null | undefined;\n\n    /**\n     * The subject line of the email\n     */\n    emailSubject: string | null | undefined;\n\n    /**\n     * The body of the email\n     */\n    emailMessage: string | null | undefined;\n\n    /**\n     * Format of the report (EnergyCAP currently supports PDF, Word, Excel, and CSV)\n     */\n    reportFormat: string | null | undefined;\n\n    scheduleType: ReportSubscriptionScheduleTypeChild | null | undefined;\n\n    dayIndicator: ReportSubscriptionDayIndicatorChild | null | undefined;\n\n    /**\n     * Indicates whether or not to email a report if it contains no data. When set to true, the subscribed report will not be emailed, if the report does not contain data. When set to false, if the requested report has no data, it will still be sent.\n     */\n    onlySendIfData: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { FilterResponse } from './filterResponse';\nimport { ReportChild } from './reportChild';\n\n\nexport class ReportDistributionLogReportSettings {\n    baseReport: ReportChild | null | undefined;\n\n    /**\n     * List of filters to apply to the report\n     */\n    reportFilters: Array<FilterResponse> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { ReportDistributionChild } from './reportDistributionChild';\n\n\nexport class ReportDistributionLogResponse {\n    /**\n     * The report distribution log identifier\n     */\n    reportDistributionLogId: number | null | undefined;\n\n    reportDistribution: ReportDistributionChild | null | undefined;\n\n    /**\n     * The date and time the report distribution was started\n     */\n    beginDate: Date | null | undefined;\n\n    /**\n     * The date and time the report distribution was completed\n     */\n    endDate: Date | null | undefined;\n\n    /**\n     * The status of the report distribution Possible values - In Progress, Complete, Not sent, Some reports not sent\n     */\n    status: string | null | undefined;\n\n    /**\n     * The number of unique recipients for the report If a user is a member of multiple groups assigned to the report distribution they will only be counted once\n     */\n    numberOfRecipients: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ReportEdit {\n    /**\n     * New specific report code <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 16 characters</span>\n     */\n    reportCode: string | null ;\n\n    /**\n     * New specific report name <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 255 characters</span>\n     */\n    reportInfo: string | null ;\n\n    /**\n     * New specific report description <span class='property-internal'>Required</span>\n     */\n    reportDescription: string | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ReportGroupChildResponse {\n    /**\n     * \n     */\n    reportGroupId: number | null | undefined;\n\n    /**\n     * \n     */\n    reportGroupCode: string | null | undefined;\n\n    /**\n     * \n     */\n    reportGroupInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ReportGroupRequest {\n    /**\n     * \n     */\n    reportGroupCode: string | null | undefined;\n\n    /**\n     * \n     */\n    reportGroupInfo: string | null | undefined;\n\n    /**\n     * \n     */\n    reportIds: Array<number> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { ReportChild } from './reportChild';\n\n\nexport class ReportGroupResponse {\n    /**\n     * \n     */\n    reportGroupId: number | null | undefined;\n\n    /**\n     * \n     */\n    reportGroupCode: string | null | undefined;\n\n    /**\n     * \n     */\n    reportGroupInfo: string | null | undefined;\n\n    /**\n     * \n     */\n    reports: Array<ReportChild> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class ReportGroups {\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ReportGroupsClassPermission {\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { ReportSubscriptionDayIndicatorChild } from './reportSubscriptionDayIndicatorChild';\nimport { ReportSubscriptionScheduleTypeChild } from './reportSubscriptionScheduleTypeChild';\nimport { UserChild } from './userChild';\n\n\nexport class ReportSubscriptionChild {\n    /**\n     * The identifier of the report subscription\n     */\n    reportSubscriptionId: number | null | undefined;\n\n    user: UserChild | null | undefined;\n\n    /**\n     * The email address to send the report to\n     */\n    emailRecipient: string | null | undefined;\n\n    /**\n     * The subject line of the email\n     */\n    emailSubject: string | null | undefined;\n\n    /**\n     * The body of the email\n     */\n    emailMessage: string | null | undefined;\n\n    /**\n     * Format of the report (EnergyCAP currently supports PDF, Word, Excel, and CSV)\n     */\n    reportFormat: string | null | undefined;\n\n    scheduleType: ReportSubscriptionScheduleTypeChild | null | undefined;\n\n    dayIndicator: ReportSubscriptionDayIndicatorChild | null | undefined;\n\n    /**\n     * Indicates whether or not to email a report if it contains no data. When set to true, the subscribed report will not be emailed, if the report does not contain data. When set to false, if the requested report has no data, it will still be sent.\n     */\n    onlySendIfData: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ReportSubscriptionDayIndicatorChild {\n    /**\n     * Indicates when to send the report for the given schedule type Values may be:  Daily: 0 Weekly: Day of Week - 0 (Sunday) to 6 (Saturday) Monthly: Day of Month - 1 to 28 Quarterly: Month in Quarter - 1, 2, or 3\n     */\n    dayIndicatorValue: number | null | undefined;\n\n    /**\n     * Name of the day indicator Daily: None Weekly: One of Sunday to Saturday Monthly: One of 1 to 28 Quarterly: 1st day of month 1 of calendar quarter, 1st day of month 2 of calendar quarter, 1st day of month 3 of calendar quarter\n     */\n    dayIndicatorInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ReportSubscriptionRequest {\n    /**\n     * The subject line of the email <span class='property-internal'>Must be between 0 and 255 characters</span> <span class='property-internal'>Required</span>\n     */\n    emailSubject: string | null ;\n\n    /**\n     * The body of the email <span class='property-internal'>Required</span>\n     */\n    emailMessage: string | null ;\n\n    /**\n     * The schedule type of the report Values may be: Daily: 1 Weekly: 2 Monthly: 3 Quarterly: 4 <span class='property-internal'>Required</span> <span class='property-internal'>One of '1', '2', '3', '4'</span> <span class='property-internal'>Case sensitive</span>\n     */\n    reportSubscriptionScheduleTypeId: number | null ;\n\n    /**\n     * Indicates when to send the report for the given schedule type Values may be:  Daily: 0 Weekly: Day of Week - 0 (Sunday) to 6 (Saturday) Monthly: Day of Month - 1 to 28 Quarterly: Month in Quarter - 1, 2, or 3 <span class='property-internal'>Must be between 0 and 28</span> <span class='property-internal'>Required</span>\n     */\n    dayIndicatorValue: number | null ;\n\n    /**\n     * Indicates whether or not to email a report if it contains no data. When set to true, the subscribed report will not be emailed, if the report does not contain data. When set to false, if the requested report has no data, it will still be sent. <span class='property-internal'>Required</span>\n     */\n    onlySendIfData: boolean | null ;\n\n    /**\n     * The format in which the generated report should be downloaded <span class='property-internal'>Required</span> <span class='property-internal'>One of 'Excel', 'Excel data only', 'Csv', 'PDF', 'Word'</span>\n     */\n    reportFormat: string | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ReportSubscriptionScheduleTypeChild {\n    /**\n     * The identifier of the subscription schedule type\n     */\n    reportSubscriptionScheduleTypeId: number | null | undefined;\n\n    /**\n     * The name of the subscription schedule type\n     */\n    reportSubscriptionScheduleTypeName: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { ReportSubscriptionDayIndicatorChild } from './reportSubscriptionDayIndicatorChild';\n\n\nexport class ReportSubscriptionScheduleTypeResponse {\n    /**\n     * The identifier of the schedule type\n     */\n    reportSubscriptionScheduleTypeId: number | null | undefined;\n\n    /**\n     * The name of the schedule type\n     */\n    reportSubscriptionScheduleTypeName: string | null | undefined;\n\n    /**\n     * Available day indicators for this schedule type\n     */\n    dayIndicators: Array<ReportSubscriptionDayIndicatorChild> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ReportType {\n    /**\n     * The identifier of the report type\n     */\n    reportTypeId: number | null | undefined;\n\n    /**\n     * The report type code\n     */\n    reportTypeCode: string | null | undefined;\n\n    /**\n     * The report type name\n     */\n    reportTypeInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ReportingSettingRequest {\n    /**\n     * The energy unit identifier <span class='property-internal'>Required (defined)</span>\n     */\n    energyUnitId: number | null | undefined;\n\n    /**\n     * The cost unit identifier <span class='property-internal'>Required (defined)</span>\n     */\n    costUnitId: number | null | undefined;\n\n    /**\n     * The floor area unit identifier <span class='property-internal'>Required (defined)</span>\n     */\n    floorAreaUnitId: number | null | undefined;\n\n    /**\n     * Months to exclude from charts, including the current month. Ex. If the current month is October,  A value of 0 will not exclude any months,  A value of 1 will exclude the month of October,  A value of 2 will exclude October and September,  A value of 3 will exclude October, September, and August,  A value of 13 will exclude October and the last full year of data. <span class='property-internal'>Must be between 0 and 13</span> <span class='property-internal'>Required (defined)</span>\n     */\n    monthsToExcludeFromCharts: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { UnitChild } from './unitChild';\n\n\nexport class ReportingSettingResponse {\n    energyUnit: UnitChild | null | undefined;\n\n    costUnit: UnitChild | null | undefined;\n\n    floorAreaUnit: UnitChild | null | undefined;\n\n    /**\n     * Months to exclude from charts, including the current month. Ex. If the current month is October,  A value of 0 will not exclude any months,  A value of 1 will exclude the month of October,  A value of 2 will exclude October and September,  A value of 3 will exclude October, September, and August,  A value of 13 will exclude October and the last full year of data.\n     */\n    monthsToExcludeFromCharts: number | null | undefined;\n\n    /**\n     * For internal use only. The task GUID of cost reporting unit post processing, only set when the cost reporting unit is changed in the Edit Reporting Settings API.\n     */\n    costReportingUnitTaskGUId: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class Reports {\n    /**\n     * \n     */\n    run: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ReportsClassPermission {\n    /**\n     * \n     */\n    run: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class ReportsModule {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ReportsModuleClassPermission {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class RequiredAddressChild {\n    /**\n     * The address country <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 64 characters</span>\n     */\n    country: string | null ;\n\n    /**\n     * The postal code for the address Required when the country is United States or Canada <span class='property-internal'>Must be between 0 and 32 characters</span>\n     */\n    postalCode: string | null | undefined;\n\n    /**\n     * The address type identifier\n     */\n    addressTypeId: number | null | undefined;\n\n    /**\n     * Remit To field is the name of the person or company who should receive the payment. It's required for bill pay customers. <span class='property-internal'>Must be between 0 and 100 characters</span>\n     */\n    remitTo: string | null | undefined;\n\n    /**\n     * The line 1 of the address <span class='property-internal'>Must be between 0 and 100 characters</span>\n     */\n    line1: string | null | undefined;\n\n    /**\n     * The line 2 of the address <span class='property-internal'>Must be between 0 and 100 characters</span>\n     */\n    line2: string | null | undefined;\n\n    /**\n     * The line 3 of the address <span class='property-internal'>Must be between 0 and 100 characters</span>\n     */\n    line3: string | null | undefined;\n\n    /**\n     * The city of the place <span class='property-internal'>Must be between 0 and 100 characters</span>\n     */\n    city: string | null | undefined;\n\n    /**\n     * The state of the place <span class='property-internal'>Must be between 0 and 100 characters</span>\n     */\n    state: string | null | undefined;\n\n    /**\n     * The latitude of the place Required when the country is not United States or Canada <span class='property-internal'>Must be between -90 and 90</span> <span class='property-internal'>Required when Longitude is set</span>\n     */\n    latitude: number | null | undefined;\n\n    /**\n     * The longitude of the place Required when the country is not United States or Canada <span class='property-internal'>Must be between -180 and 180</span> <span class='property-internal'>Required when Latitude is set</span>\n     */\n    longitude: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class ResetUserPasswords {\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ResetUserPasswordsClassPermission {\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { BatchCreate } from './batchCreate';\n\n\nexport class ReversalBatchSettings {\n    /**\n     * Needs to be one of -  \\\"new self-contained batch\\\", \\\"use existing batch\\\", or \\\"new batch\\\"     If \\\"new self-contained batch\\\", make a new batch and add bills to it and close it. \\\"CloseExistingBatch\\\" property of NewBatch object is ignored in this case since a self-contained batch should not affect existing batches. If \\\"use existing batch\\\", we will use an existing open batch and leave it open. Used with \\\"ExistingOpenBatchId\\\" property. If \\\"new batch\\\", open a new batch. If there are other open batches for this user, and \\\"CloseExistingBatch\\\" is true, then close those batches. <span class='property-internal'>One of 'new self-contained batch', 'use existing batch', 'new batch'</span> <span class='property-internal'>Required (defined)</span>\n     */\n    batchMode: string | null | undefined;\n\n    /**\n     * Optional - ID of an existing open batch to use. Only applies when BatchMode is \\\"use existing batch\\\". If not provided, the current user must have exactly one open batch, otherwise an error occurs. Must reference an open batch belonging to the current user, or if the user has \\\"Bills and Batch: Manage\\\" permission, any user's open batch. <span class='property-internal'>Required (defined)</span>\n     */\n    existingOpenBatchId: number | null | undefined;\n\n    newBatch: BatchCreate | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { UserChild } from './userChild';\n\n\nexport class Reviewed {\n    /**\n     * Indicates whether or not the savings has been reviewed\n     */\n    reviewed: boolean | null | undefined;\n\n    reviewedBy: UserChild | null | undefined;\n\n    /**\n     * Reviewed date\n     */\n    reviewedDate: Date | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class Roles {\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class RolesClassPermission {\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { RollingComparisonPeriodValue } from './rollingComparisonPeriodValue';\nimport { YearRange } from './yearRange';\n\n\nexport class RollingComparisonDetail {\n    yearRange: YearRange | null | undefined;\n\n    /**\n     * The monthly values within the year range\n     */\n    values: Array<RollingComparisonPeriodValue> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { TimeSeriesValue } from './timeSeriesValue';\n\n\nexport class RollingComparisonPeriodValue {\n    /**\n     * The grouped values within the period\n     */\n    groupByValues: Array<TimeSeriesValue> | null | undefined;\n\n    /**\n     * The period\n     */\n    period: number | null | undefined;\n\n    /**\n     * The value within the period\n     */\n    value: number | null | undefined;\n\n    /**\n     * The formatted value within the period\n     */\n    formattedValue: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PeriodRange } from './periodRange';\nimport { RollingComparisonDetail } from './rollingComparisonDetail';\nimport { TimeSeriesEntity } from './timeSeriesEntity';\n\n\nexport class RollingComparisonResponse {\n    /**\n     * Indicates the type of the data displayed. Eg: Actual, Calendarized or Normalized.\n     */\n    dataDisplayed: string | null | undefined;\n\n    /**\n     * The values unit\n     */\n    unit: string | null | undefined;\n\n    periodRange: PeriodRange | null | undefined;\n\n    /**\n     * The entities for the groups\n     */\n    groupByEntities: Array<TimeSeriesEntity> | null | undefined;\n\n    /**\n     * The data details\n     */\n    dataDetails: Array<RollingComparisonDetail> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { RollupUnitUpdateCommonUnit } from './rollupUnitUpdateCommonUnit';\n\n\nexport class RollupUnitUpdate {\n    /**\n     * List of commodities and their rollup units to update <span class='property-internal'>Required (defined)</span>\n     */\n    commonRollups: Array<RollupUnitUpdateCommonUnit> | null | undefined;\n\n    /**\n     * The global rollup unit. Automatically assigned to ENERGY commodity. Pass in null to leave alone. <span class='property-internal'>Required (defined)</span>\n     */\n    globalRollupUnitId: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class RollupUnitUpdateCommonUnit {\n    /**\n     * The commodity identifier <span class='property-internal'>Required (defined)</span>\n     */\n    commodityId: number | null | undefined;\n\n    /**\n     * The unit identifier that this commodity will roll up to <span class='property-internal'>Required (defined)</span>\n     */\n    commonRollupUnitId: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class RouteChild {\n    /**\n     * The route identifier\n     */\n    routeId: number | null | undefined;\n\n    /**\n     * The route info\n     */\n    routeInfo: string | null | undefined;\n\n    /**\n     * The route code\n     */\n    routeCode: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { MeterChildIncludePlaceAndSerialNumber } from './meterChildIncludePlaceAndSerialNumber';\n\n\nexport class RouteDetailsResponse {\n    /**\n     * The meters assigned to this route\n     */\n    meters: Array<MeterChildIncludePlaceAndSerialNumber> | null | undefined;\n\n    /**\n     * The number of meters assigned to this route\n     */\n    numberOfMeters: number | null | undefined;\n\n    /**\n     * The route identifier\n     */\n    routeId: number | null | undefined;\n\n    /**\n     * The route info\n     */\n    routeInfo: string | null | undefined;\n\n    /**\n     * The route code\n     */\n    routeCode: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class RouteMeter {\n    /**\n     * The identifier for the meter <span class='property-internal'>Required</span>\n     */\n    meterId: number | null ;\n\n    /**\n     * The display order for this route meter\n     */\n    displayOrder: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { MeterChildIncludePlaceChannelLatestReading } from './meterChildIncludePlaceChannelLatestReading';\n\n\nexport class RouteMeterChannelLatestReadingResponse {\n    /**\n     * List of meters with channels and their latest reading\n     */\n    meters: Array<MeterChildIncludePlaceChannelLatestReading> | null | undefined;\n\n    /**\n     * The route identifier\n     */\n    routeId: number | null | undefined;\n\n    /**\n     * The route info\n     */\n    routeInfo: string | null | undefined;\n\n    /**\n     * The route code\n     */\n    routeCode: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class RouteRequest {\n    /**\n     * The route info <span class='property-internal'>Must be between 0 and 32 characters</span> <span class='property-internal'>Required</span>\n     */\n    routeInfo: string | null ;\n\n    /**\n     * The route code This property has been deprecated. Route code will be generated from the value in route info <span class='property-internal'>Must be between 0 and 16 characters</span>\n     */\n    routeCode: string | null | undefined;\n\n    /**\n     * The list of IDs for meters to be assigned to the route. The order in which the meter IDs appear will determine their order on the route. NOTE: if the same meter ID is passed in multiple times, the first occurrence of the meter ID will be used to determine the order on the route <span class='property-internal'>Required</span>\n     */\n    meterIds: Array<number> | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class RouteResponse {\n    /**\n     * The number of meters assigned to this route\n     */\n    numberOfMeters: number | null | undefined;\n\n    /**\n     * The route identifier\n     */\n    routeId: number | null | undefined;\n\n    /**\n     * The route info\n     */\n    routeInfo: string | null | undefined;\n\n    /**\n     * The route code\n     */\n    routeCode: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class SafeWaitHandle {\n    /**\n     * \n     */\n    isInvalid: boolean | null | undefined;\n\n    /**\n     * \n     */\n    isClosed: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class SavingsAdjustments {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class SavingsAdjustmentsClassPermission {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { Message } from './message';\nimport { UnitChild } from './unitChild';\n\n\n/**\n * SavingsDaily Data - a class that represents CA Savings for a given day per meter/bill\n */\nexport class SavingsDailyData {\n    /**\n     * Baseline Adjusted to Current Conditions (BATCC) non-weather use in native units\n     */\n    batccNonWeatherNativeUse: number | null | undefined;\n\n    /**\n     * Baseline Adjusted to Current Conditions (BATCC) weather use in native units\n     */\n    batccWeatherNativeUse: number | null | undefined;\n\n    /**\n     * Baseline non-weather Use in native units\n     */\n    baselineNonWeatherNativeUse: number | null | undefined;\n\n    /**\n     * Baseline weather use in native units\n     */\n    baselineWeatherNativeUse: number | null | undefined;\n\n    /**\n     * Baseline Adjusted to Current Conditions (BATCC) cost\n     */\n    batccCost: number | null | undefined;\n\n    /**\n     * Average unit cost\n     */\n    averageUnitCost: number | null | undefined;\n\n    /**\n     * Number of cooling degrees used on this day in the baseline\n     */\n    baselineCoolingDegreeDays: number | null | undefined;\n\n    /**\n     * Number of cooling degrees used on this day\n     */\n    currentCoolingDegreeDays: number | null | undefined;\n\n    /**\n     * Number of heating degrees used on this day in the baseline\n     */\n    baselineHeatingDegreeDays: number | null | undefined;\n\n    /**\n     * Number of heating degrees used on this day\n     */\n    currentHeatingDegreeDays: number | null | undefined;\n\n    /**\n     * Indicates whether or not a Special Adjustment was in effect on this day\n     */\n    specialAdjustment: boolean | null | undefined;\n\n    /**\n     * Indicates whether or not an Area Adjustment was in effect on this day\n     */\n    areaAdjustment: boolean | null | undefined;\n\n    /**\n     * Indicates whether or not Weather Adjustment was in effect on this day\n     */\n    weatherAdjustment: boolean | null | undefined;\n\n    /**\n     * Indicates whether or not Other Adjustment was in effect on this day\n     */\n    otherAdjustment: boolean | null | undefined;\n\n    /**\n     * Daily savings date\n     */\n    date: Date | null | undefined;\n\n    /**\n     * List of Processor Messages for this day\n     */\n    messages: Array<Message> | null | undefined;\n\n    costUnit: UnitChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class SavingsEngine {\n    /**\n     * \n     */\n    run: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class SavingsEngineClassPermission {\n    /**\n     * \n     */\n    run: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class SavingsLog {\n    /**\n     * The status of savings processing\n     */\n    status: string | null | undefined;\n\n    /**\n     * Number of meters successfully processed\n     */\n    successCount: number | null | undefined;\n\n    /**\n     * Number of bills processed that have warnings across all meters processed A bill has a \\\"warning\\\" if it had 1) incomplete weather data or 2) exceeded the average unit cost range set for its commodity\n     */\n    warningCount: number | null | undefined;\n\n    /**\n     * Number of meters processed with errors\n     */\n    errorCount: number | null | undefined;\n\n    /**\n     * Number of meters to process\n     */\n    numberOfMeters: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { SavingsDailyData } from './savingsDailyData';\nimport { UnitChild } from './unitChild';\n\n\n/**\n * SavingsMeterBillDailyResponseDTO - This class is the DTO for a meter's bill's Cost Avoidance savings in daily format It provides the meter, bill, use unit, and then an array of daily savings values Each daily value contains date that represents this day, non-weather use, weather use, BATCC Cost, average daily unit cost,  whether any of the four adjustments (special, area, weather, other) were performed and a list of messages generated by the Savings Processor for this day\n */\nexport class SavingsMeterBillDailyResponse {\n    /**\n     * Unique meter identifier\n     */\n    meterId: number | null | undefined;\n\n    /**\n     * Meter Code\n     */\n    meterCode: string | null | undefined;\n\n    /**\n     * Meter Name\n     */\n    meterInfo: string | null | undefined;\n\n    /**\n     * Unique bill identifier\n     */\n    billId: number | null | undefined;\n\n    /**\n     * Calendar Period Name (e.g. Jan)\n     */\n    periodName: string | null | undefined;\n\n    /**\n     * Calendar period Number (e.g. 1)\n     */\n    calendarPeriod: number | null | undefined;\n\n    /**\n     * Calendar year (e.g. 2019)\n     */\n    calendarYear: number | null | undefined;\n\n    /**\n     * Fiscal period number\n     */\n    fiscalPeriod: number | null | undefined;\n\n    /**\n     * Fiscal year\n     */\n    fiscalYear: number | null | undefined;\n\n    nativeUseUnit: UnitChild | null | undefined;\n\n    /**\n     * Cost avoidance savings for this meter, day by day\n     */\n    daily: Array<SavingsDailyData> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AccountChild } from './accountChild';\nimport { MeterChild } from './meterChild';\nimport { PlaceChild } from './placeChild';\nimport { Reviewed } from './reviewed';\nimport { UnitChild } from './unitChild';\n\n\nexport class SavingsMeterBillResponse {\n    /**\n     * Unique ID for this savings record (Bill Meter CAP)\n     */\n    billMtrCapId: number | null | undefined;\n\n    /**\n     * Unique ID of the bill processed for this savings record\n     */\n    billId: number | null | undefined;\n\n    /**\n     * Calendar Period Name (e.g. Jan)\n     */\n    periodName: string | null | undefined;\n\n    /**\n     * Calendar Period Number (e.g. 4)\n     */\n    calendarPeriod: number | null | undefined;\n\n    /**\n     * Calendar Year (e.g. 2019)\n     */\n    calendarYear: number | null | undefined;\n\n    /**\n     * Fiscal Period Number\n     */\n    fiscalPeriod: number | null | undefined;\n\n    /**\n     * Fiscal Year\n     */\n    fiscalYear: number | null | undefined;\n\n    /**\n     * Baseline Cost\n     */\n    baselineCost: number | null | undefined;\n\n    /**\n     * Baseline Native Use\n     */\n    baselineNativeUse: number | null | undefined;\n\n    /**\n     * Baseline Weather Native Use\n     */\n    baselineWeatherNativeUse: number | null | undefined;\n\n    /**\n     * Baseline Nonweather Native Use\n     */\n    baselineNonweatherNativeUse: number | null | undefined;\n\n    /**\n     * Baseline Adjusted to Current Conditions (BATCC) Cost\n     */\n    batccCost: number | null | undefined;\n\n    /**\n     * Baseline Adjusted to Current Conditions (BATCC) Native Use\n     */\n    batccNativeUse: number | null | undefined;\n\n    /**\n     * Baseline Adjusted to Current Conditions (BATCC) Weather Native Use\n     */\n    batccWeatherNativeUse: number | null | undefined;\n\n    /**\n     * Baseline Adjusted to Current Conditions (BATCC) Nonweather Native Use\n     */\n    batccNonweatherNativeUse: number | null | undefined;\n\n    /**\n     * Actual Cost\n     */\n    actualCost: number | null | undefined;\n\n    /**\n     * Actual Native Use\n     */\n    actualNativeUse: number | null | undefined;\n\n    /**\n     * Savings Cost\n     */\n    savingsCost: number | null | undefined;\n\n    /**\n     * Savings Native Use\n     */\n    savingsNativeUse: number | null | undefined;\n\n    /**\n     * Savings Cost Percent\n     */\n    savingsCostPercent: number | null | undefined;\n\n    /**\n     * Savings Native Use Percent\n     */\n    savingsNativeUsePercent: number | null | undefined;\n\n    /**\n     * Heating Degree Days\n     */\n    hdd: number | null | undefined;\n\n    /**\n     * Cooling Degree Days\n     */\n    cdd: number | null | undefined;\n\n    /**\n     * Heating Degree Days Adjusted\n     */\n    hddAdjusted: boolean | null | undefined;\n\n    /**\n     * Cooling Degree Days Adjusted\n     */\n    cddAdjusted: boolean | null | undefined;\n\n    /**\n     * Heating Use Per Degree Day\n     */\n    heatingUsePerDegreeDay: number | null | undefined;\n\n    /**\n     * Heating R2\n     */\n    heatR2: number | null | undefined;\n\n    /**\n     * Cooling Use Per Degree Day\n     */\n    coolingUsePerDegreeDay: number | null | undefined;\n\n    /**\n     * Cooling R2\n     */\n    coolR2: number | null | undefined;\n\n    /**\n     * Cost Avoidance Status\n     */\n    capStatus: string | null | undefined;\n\n    /**\n     * Indicates whether or not the bill's cost avoidance data is locked\n     */\n    locked: boolean | null | undefined;\n\n    /**\n     * \n     */\n    billMtrNotes: Array<string> | null | undefined;\n\n    nativeUseUnit: UnitChild | null | undefined;\n\n    review: Reviewed | null | undefined;\n\n    account: AccountChild | null | undefined;\n\n    meter: MeterChild | null | undefined;\n\n    place: PlaceChild | null | undefined;\n\n    costUnit: UnitChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ScheduleChild {\n    /**\n     * The ID of this Schedule record.\n     */\n    scheduleId: number | null | undefined;\n\n    /**\n     * Information about this schedule. This can be thought of as a name. For example, \\\"24/7\\\".\n     */\n    scheduleInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { ScheduleDayCreate } from './scheduleDayCreate';\n\n\nexport class ScheduleCreate {\n    /**\n     * Unique name of the schedule <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 50 characters</span>\n     */\n    scheduleInfo: string | null ;\n\n    /**\n     * Optional description of the schedule <span class='property-internal'>Must be between 0 and 255 characters</span>\n     */\n    scheduleDescription: string | null | undefined;\n\n    /**\n     * List of schedule day definition for each day of the week All 7 days must be informed <span class='property-internal'>Cannot be Empty</span>\n     */\n    scheduleDays: Array<ScheduleDayCreate> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { DayOfWeek } from './dayOfWeek';\n\n\nexport class ScheduleDay {\n    /**\n     * The ID of this ScheduleDay record.\n     */\n    scheduleDayId: number | null | undefined;\n\n    dayOfWeek: DayOfWeek | null | undefined;\n\n    /**\n     * The time of day that this schedule begins. It is serialized as a \\\"HH:MM:SS\\\" string. For example, \\\"09:00:00\\\".\n     */\n    beginTime: string | null | undefined;\n\n    /**\n     * The time of day that this schedule ends. It is serialized as a \\\"HH:MM:SS\\\" string. For example, \\\"17:29:59\\\".\n     */\n    endTime: string | null | undefined;\n\n    /**\n     * Indicates whether the record represents an opening period of 24 hours. - i.e. starting at \\\"00:00:00\\\" and finishing at \\\"23:59:59\\\"\n     */\n    is24Hours: boolean | null | undefined;\n\n    /**\n     * Indicates whether the record represents being closed for the entire day. If this is `true` then BeginTime and EndTime will both be null.\n     */\n    isClosed: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ScheduleDayCreate {\n    /**\n     * The day of week that this record refers to. <span class='property-internal'>Required</span> <span class='property-internal'>Must be a valid value for DayOfWeek: Sunday = 0, Monday = 1, Tuesday = 2, Wednesday = 3, Thursday = 4, Friday = 5, Saturday = 6</span>\n     */\n    dayOfWeek: ScheduleDayCreate.DayOfWeekEnum;\n\n    /**\n     * The time of day that this schedule begins.  It is serialized as a \\\"HH:MM:SS\\\" string. For example, \\\"17:29:59\\\". Should only be informed when Is24Hours = false AND IsClosed = false, otherwise it should be null. <span class='property-internal'>Must be null when IsClosed, or Is24Hours are set to True, case sensitive</span>\n     */\n    beginTime: string | null | undefined;\n\n    /**\n     * The time of day that this schedule ends. It is serialized as a \\\"HH:MM:SS\\\" string. For example, \\\"17:29:59\\\". Should only be informed when Is24Hours = false AND IsClosed = false, otherwise it should be null. <span class='property-internal'>Must be greater than BeginTime</span> <span class='property-internal'>Must be null when IsClosed, or Is24Hours are set to True, case sensitive</span>\n     */\n    endTime: string | null | undefined;\n\n    /**\n     * Indicates whether the record represents an opening period of 24 hours. When Is24Hours = true, BeginTime and EndTime should be null because it will automatically be set to begin at \\\"00:00:00\\\" and finish at \\\"23:59:59\\\"\n     */\n    is24Hours: boolean | null | undefined;\n\n    /**\n     * Indicates whether the record represents being closed for the entire day. When IsClosed = true, BeginTime and EndTime should be null because it does not apply for a closed day.\n     */\n    isClosed: boolean | null | undefined;\n\n}\nexport namespace ScheduleDayCreate {\n    export enum DayOfWeekEnum {\n        NUMBER_0 = <any> 0,\n        NUMBER_1 = <any> 1,\n        NUMBER_2 = <any> 2,\n        NUMBER_3 = <any> 3,\n        NUMBER_4 = <any> 4,\n        NUMBER_5 = <any> 5,\n        NUMBER_6 = <any> 6\n    }\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { ScheduleDayCreate } from './scheduleDayCreate';\n\n\nexport class ScheduleEdit {\n    /**\n     * Unique name of the schedule <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 50 characters</span>\n     */\n    scheduleInfo: string | null ;\n\n    /**\n     * Optional description of the schedule <span class='property-internal'>Must be between 0 and 255 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    scheduleDescription: string | null | undefined;\n\n    /**\n     * List of schedule day definition for each day of the week All 7 days must be informed <span class='property-internal'>Cannot be Empty</span> <span class='property-internal'>Required (defined)</span>\n     */\n    scheduleDays: Array<ScheduleDayCreate> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { ScheduleDay } from './scheduleDay';\nimport { UserChild } from './userChild';\n\n\nexport class ScheduleResponse {\n    /**\n     * A longer description of this schedule. For example, \\\"9-5, Mon-Fri\\\".\n     */\n    scheduleDescription: string | null | undefined;\n\n    /**\n     * A list of 7 ScheduleDay records, each of which defines the open hours for a single day of the week. They are returned in order, beginning with Sunday and ending with Saturday.\n     */\n    scheduleDays: Array<ScheduleDay> | null | undefined;\n\n    createdBy: UserChild | null | undefined;\n\n    /**\n     * The date when the schedule was created\n     */\n    createdDate: Date | null | undefined;\n\n    modifiedBy: UserChild | null | undefined;\n\n    /**\n     * The date when the version was schedule\n     */\n    modifiedDate: Date | null | undefined;\n\n    /**\n     * The ID of this Schedule record.\n     */\n    scheduleId: number | null | undefined;\n\n    /**\n     * Information about this schedule. This can be thought of as a name. For example, \\\"24/7\\\".\n     */\n    scheduleInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { EntityScheduleSummary } from './entityScheduleSummary';\nimport { ScheduleDay } from './scheduleDay';\nimport { UserChild } from './userChild';\n\n\n/**\n * Represents a Schedule in the context of an interval data response. An interval data response contain results for zero, one, or more \\\"Entities\\\" (for example, Data Points, Places, or Commodities). For each Entity, this DTO includes a summary containing its associated \\\"in-schedule\\\" and \\\"out-schedule\\\" use (or demand).\n */\nexport class ScheduleWithEntitySummaries {\n    /**\n     * \n     */\n    entityScheduleSummaries: Array<EntityScheduleSummary> | null | undefined;\n\n    /**\n     * A longer description of this schedule. For example, \\\"9-5, Mon-Fri\\\".\n     */\n    scheduleDescription: string | null | undefined;\n\n    /**\n     * A list of 7 ScheduleDay records, each of which defines the open hours for a single day of the week. They are returned in order, beginning with Sunday and ending with Saturday.\n     */\n    scheduleDays: Array<ScheduleDay> | null | undefined;\n\n    createdBy: UserChild | null | undefined;\n\n    /**\n     * The date when the schedule was created\n     */\n    createdDate: Date | null | undefined;\n\n    modifiedBy: UserChild | null | undefined;\n\n    /**\n     * The date when the version was schedule\n     */\n    modifiedDate: Date | null | undefined;\n\n    /**\n     * The ID of this Schedule record.\n     */\n    scheduleId: number | null | undefined;\n\n    /**\n     * Information about this schedule. This can be thought of as a name. For example, \\\"24/7\\\".\n     */\n    scheduleInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { SearchAccountChildSearchAccountChild } from './searchAccountChildSearchAccountChild';\n\n\nexport class SearchAccountChild {\n    result: SearchAccountChildSearchAccountChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AccountTypeChild } from './accountTypeChild';\nimport { AddressChild } from './addressChild';\nimport { CostCenterChild } from './costCenterChild';\nimport { VendorChild } from './vendorChild';\n\n\nexport class SearchAccountChildSearchAccountChild {\n    /**\n     * The Account identifier\n     */\n    accountId: number | null | undefined;\n\n    /**\n     * The Account code <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 32 characters</span>\n     */\n    accountCode: string | null ;\n\n    /**\n     * An array of account code aliases\n     */\n    accountCodeAliases: Array<string> | null | undefined;\n\n    /**\n     * The Account info <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 50 characters</span>\n     */\n    accountInfo: string | null ;\n\n    /**\n     * Indicates whether the Account is active or inactive\n     */\n    active: boolean | null | undefined;\n\n    accountType: AccountTypeChild | null | undefined;\n\n    vendor: VendorChild | null | undefined;\n\n    address: AddressChild | null | undefined;\n\n    /**\n     * The collection of cost centers representing the path to its parent\n     */\n    parentPath: Array<CostCenterChild> | null | undefined;\n\n    /**\n     * Indicates whether the Account has a child calculated meter\n     */\n    hasCalculatedMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the Account is a recipient of a split\n     */\n    hasSplitParentMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the Account has a child split meter\n     */\n    hasSplitChildMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the Account is a sub-account\n     */\n    isSubAccount: boolean | null | undefined;\n\n    /**\n     * Indicates whether the Account has a sub-account\n     */\n    hasSubAccount: boolean | null | undefined;\n\n    /**\n     * The previous Account code\n     */\n    previousAccountCode: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AccountTypeChild } from './accountTypeChild';\nimport { AddressChild } from './addressChild';\nimport { MeterChildSearch } from './meterChildSearch';\nimport { VendorChild } from './vendorChild';\n\n\nexport class SearchAccountMeterBillEntry {\n    /**\n     * The MatchType values - Account - we found a match on account code, account info or previous account code Meter - we found a match on meter code, meter info or serial number AccountAddress - we found a match on account's address - line1, line2, city or state MeterAddress - we found a match on meter's address - line1, line2, city or state\n     */\n    matchType: string | null | undefined;\n\n    /**\n     * The Account identifier\n     */\n    accountId: number | null | undefined;\n\n    /**\n     * The Account code\n     */\n    accountCode: string | null | undefined;\n\n    /**\n     * The Account info\n     */\n    accountInfo: string | null | undefined;\n\n    /**\n     * The Previous Account code\n     */\n    previousAccountCode: string | null | undefined;\n\n    /**\n     * Indicates whether the Account is active or inactive\n     */\n    active: boolean | null | undefined;\n\n    accountType: AccountTypeChild | null | undefined;\n\n    /**\n     * Indicates whether the Account has a child calculated meter\n     */\n    hasCalculatedMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the Account is a recipient of a split\n     */\n    hasSplitParentMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the Account has a child split meter\n     */\n    hasSplitChildMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the Account is a sub-account\n     */\n    isSubAccount: boolean | null | undefined;\n\n    /**\n     * Indicates whether the Account has a sub-account\n     */\n    hasSubAccount: boolean | null | undefined;\n\n    vendor: VendorChild | null | undefined;\n\n    accountAddress: AddressChild | null | undefined;\n\n    /**\n     * The Account's vendor\n     */\n    meters: Array<MeterChildSearch> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { SearchBillChildSearchBillChild } from './searchBillChildSearchBillChild';\n\n\nexport class SearchBillChild {\n    result: SearchBillChildSearchBillChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class SearchBillChildSearchBillAccountChild {\n    /**\n     * The Account identifier\n     */\n    accountId: number | null | undefined;\n\n    /**\n     * The Account code\n     */\n    accountCode: string | null | undefined;\n\n    /**\n     * The Account info\n     */\n    accountInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { SearchBillChildSearchBillAccountChild } from './searchBillChildSearchBillAccountChild';\n\n\nexport class SearchBillChildSearchBillChild {\n    /**\n     * The bill identifier\n     */\n    billId: number | null | undefined;\n\n    /**\n     * The bill's billing period\n     */\n    billingPeriod: number | null | undefined;\n\n    account: SearchBillChildSearchBillAccountChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { SearchCollectionChildSearchCollection } from './searchCollectionChildSearchCollection';\n\n\nexport class SearchCollectionChild {\n    result: SearchCollectionChildSearchCollection | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CollectionChild } from './collectionChild';\nimport { Icon } from './icon';\n\n\nexport class SearchCollectionChildSearchCollection {\n    /**\n     * The collection identifier\n     */\n    collectionId: number | null | undefined;\n\n    /**\n     * The collection code\n     */\n    collectionCode: string | null | undefined;\n\n    /**\n     * The collection info\n     */\n    collectionInfo: string | null | undefined;\n\n    collectionIcon: Icon | null | undefined;\n\n    /**\n     * The collection of CarbonHub collections representing the path to its parent\n     */\n    parentPath: Array<CollectionChild> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { SearchCostCenterChildSearchCostCenter } from './searchCostCenterChildSearchCostCenter';\n\n\nexport class SearchCostCenterChild {\n    result: SearchCostCenterChildSearchCostCenter | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CostCenterChild } from './costCenterChild';\n\n\nexport class SearchCostCenterChildSearchCostCenter {\n    /**\n     * The cost center identifier\n     */\n    costCenterId: number | null | undefined;\n\n    /**\n     * The cost center code <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 32 characters</span>\n     */\n    costCenterCode: string | null ;\n\n    /**\n     * The cost center info <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 50 characters</span>\n     */\n    costCenterInfo: string | null ;\n\n    /**\n     * The collection of cost centers representing the path to its parent\n     */\n    parentPath: Array<CostCenterChild> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { SearchEmissionSourceChildSearchEmissionSource } from './searchEmissionSourceChildSearchEmissionSource';\n\n\nexport class SearchEmissionSourceChild {\n    result: SearchEmissionSourceChildSearchEmissionSource | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CollectionChild } from './collectionChild';\nimport { CommodityChild } from './commodityChild';\n\n\nexport class SearchEmissionSourceChildSearchEmissionSource {\n    /**\n     * The emissions source identifier\n     */\n    emissionSourceId: number | null | undefined;\n\n    /**\n     * The emissions source code\n     */\n    emissionSourceCode: string | null | undefined;\n\n    /**\n     * The emissions source info\n     */\n    emissionSourceInfo: string | null | undefined;\n\n    commodity: CommodityChild | null | undefined;\n\n    /**\n     * The collection of CarbonHub collections representing the path to its parent\n     */\n    parentPath: Array<CollectionChild> | null | undefined;\n\n    /**\n     * Indicates whether or not the emissions source is active\n     */\n    active: boolean | null | undefined;\n\n    /**\n     * The address postal code\n     */\n    postalCode: string | null | undefined;\n\n    /**\n     * The address city\n     */\n    city: string | null | undefined;\n\n    /**\n     * The address state\n     */\n    state: string | null | undefined;\n\n    /**\n     * The address country\n     */\n    country: string | null | undefined;\n\n    /**\n     * The address first line\n     */\n    line1: string | null | undefined;\n\n    /**\n     * The address second line\n     */\n    line2: string | null | undefined;\n\n    /**\n     * The address third line\n     */\n    line3: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { SearchMeterChildSearchMeterChild } from './searchMeterChildSearchMeterChild';\n\n\nexport class SearchMeterChild {\n    result: SearchMeterChildSearchMeterChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CommodityChild } from './commodityChild';\nimport { MeterAccountChild } from './meterAccountChild';\nimport { MeterTypeChild } from './meterTypeChild';\nimport { SearchParentPlaceChild } from './searchParentPlaceChild';\n\n\nexport class SearchMeterChildSearchMeterChild {\n    /**\n     * The meter identifier\n     */\n    meterId: number | null | undefined;\n\n    /**\n     * The meter code <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 32 characters</span>\n     */\n    meterCode: string | null ;\n\n    /**\n     * The meter info <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 50 characters</span>\n     */\n    meterInfo: string | null ;\n\n    /**\n     * The collection of accounts\n     */\n    accounts: Array<MeterAccountChild> | null | undefined;\n\n    commodity: CommodityChild | null | undefined;\n\n    meterType: MeterTypeChild | null | undefined;\n\n    /**\n     * The address postal code\n     */\n    postalCode: string | null | undefined;\n\n    /**\n     * The address city\n     */\n    city: string | null | undefined;\n\n    /**\n     * The address state\n     */\n    state: string | null | undefined;\n\n    /**\n     * The address country\n     */\n    country: string | null | undefined;\n\n    /**\n     * The address first line\n     */\n    line1: string | null | undefined;\n\n    /**\n     * The address second line\n     */\n    line2: string | null | undefined;\n\n    /**\n     * The address third line\n     */\n    line3: string | null | undefined;\n\n    /**\n     * The bill entry note\n     */\n    billEntryNote: string | null | undefined;\n\n    /**\n     * Indicates if the building is included in ENERGY STAR submissions\n     */\n    includeInEnergyStar: boolean | null | undefined;\n\n    /**\n     * An array of meter properties\n     */\n    properties: { [key: string]: string; } | null | undefined;\n\n    /**\n     * The collection of places representing the path to its parent\n     */\n    parentPath: Array<SearchParentPlaceChild> | null | undefined;\n\n    /**\n     * Indicates whether the meter is Active\n     */\n    active: boolean | null | undefined;\n\n    /**\n     * Indicates whether the meter is a calculated meter\n     */\n    isCalculatedMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the meter is a parent of a split\n     */\n    isSplitParentMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the meter is a child of a split\n     */\n    isSplitChildMeter: boolean | null | undefined;\n\n    /**\n     * The previous serial number of the meter\n     */\n    previousSerialNumber: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PlaceTypeResponse } from './placeTypeResponse';\n\n\nexport class SearchParentPlaceChild {\n    /**\n     * The place identifier\n     */\n    placeId: number | null | undefined;\n\n    /**\n     * The place code\n     */\n    placeCode: string | null | undefined;\n\n    /**\n     * The place info\n     */\n    placeInfo: string | null | undefined;\n\n    placeType: PlaceTypeResponse | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { SearchPlaceChildSearchPlaceChild } from './searchPlaceChildSearchPlaceChild';\n\n\nexport class SearchPlaceChild {\n    result: SearchPlaceChildSearchPlaceChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AddressChild } from './addressChild';\nimport { PlaceTypeResponse } from './placeTypeResponse';\nimport { SearchParentPlaceChild } from './searchParentPlaceChild';\n\n\nexport class SearchPlaceChildSearchPlaceChild {\n    /**\n     * The place identifier\n     */\n    placeId: number | null | undefined;\n\n    /**\n     * The place code <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 32 characters</span>\n     */\n    placeCode: string | null ;\n\n    /**\n     * The place info <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 50 characters</span>\n     */\n    placeInfo: string | null ;\n\n    placeType: PlaceTypeResponse | null | undefined;\n\n    address: AddressChild | null | undefined;\n\n    /**\n     * The collection of places representing the path to its parent\n     */\n    parentPath: Array<SearchParentPlaceChild> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PlaceGroupChild } from './placeGroupChild';\n\n\nexport class SearchPlaceGroup {\n    result: PlaceGroupChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { SearchAccountChild } from './searchAccountChild';\nimport { SearchBillChild } from './searchBillChild';\nimport { SearchCollectionChild } from './searchCollectionChild';\nimport { SearchCostCenterChild } from './searchCostCenterChild';\nimport { SearchEmissionSourceChild } from './searchEmissionSourceChild';\nimport { SearchMeterChild } from './searchMeterChild';\nimport { SearchPlaceChild } from './searchPlaceChild';\nimport { SearchPlaceGroup } from './searchPlaceGroup';\nimport { SearchVendorChild } from './searchVendorChild';\n\n\nexport class SearchResponse {\n    /**\n     * The collection of cost centers\n     */\n    costCenters: Array<SearchCostCenterChild> | null | undefined;\n\n    /**\n     * The collection of accounts\n     */\n    accounts: Array<SearchAccountChild> | null | undefined;\n\n    /**\n     * The collection of places\n     */\n    places: Array<SearchPlaceChild> | null | undefined;\n\n    /**\n     * The collection of meters\n     */\n    meters: Array<SearchMeterChild> | null | undefined;\n\n    /**\n     * The collection of place groups\n     */\n    placeGroups: Array<SearchPlaceGroup> | null | undefined;\n\n    /**\n     * The collection of CarbonHub collections\n     */\n    collections: Array<SearchCollectionChild> | null | undefined;\n\n    /**\n     * The collection of CarbonHub emissions sources\n     */\n    emissionSources: Array<SearchEmissionSourceChild> | null | undefined;\n\n    /**\n     * The collection of vendors\n     */\n    vendors: Array<SearchVendorChild> | null | undefined;\n\n    /**\n     * The collection of bills\n     */\n    bills: Array<SearchBillChild> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { SearchVendorChildSearchVendorChild } from './searchVendorChildSearchVendorChild';\n\n\nexport class SearchVendorChild {\n    result: SearchVendorChildSearchVendorChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AddressChild } from './addressChild';\n\n\nexport class SearchVendorChildSearchVendorChild {\n    /**\n     * An array of vendor code aliases\n     */\n    vendorCodeAliases: Array<string> | null | undefined;\n\n    remitAddress: AddressChild | null | undefined;\n\n    /**\n     * The vendor identifier\n     */\n    vendorId: number | null | undefined;\n\n    /**\n     * The vendor code\n     */\n    vendorCode: string | null | undefined;\n\n    /**\n     * The vendor info\n     */\n    vendorInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class SendDataAccessReleaseRequest {\n    /**\n     * Sets the reply-to email address <span class='property-internal'>Must be between 0 and 128 characters</span> <span class='property-internal'>Required</span>\n     */\n    replyTo: string | null ;\n\n    /**\n     * The list of recipient email addresses <span class='property-internal'>Cannot be Empty</span>\n     */\n    recipients: Array<string> | null | undefined;\n\n    /**\n     * The subject of the data access release request email <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 255 characters</span>\n     */\n    subject: string | null ;\n\n    /**\n     * The body of the data access release request email <span class='property-internal'>Required</span>\n     */\n    message: string | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class SendNotifications {\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class SendNotificationsClassPermission {\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class Setup {\n    /**\n     * Type of importer\n     */\n    type: Setup.TypeEnum;\n\n    /**\n     * Type of sheet that was imported\n     */\n    sheetType: string | null | undefined;\n\n    /**\n     * Action that was performed - create, update, convert\n     */\n    action: string | null | undefined;\n\n    /**\n     * Count of rows that succeeded\n     */\n    success: number | null | undefined;\n\n    /**\n     * Count of rows that failed\n     */\n    failure: number | null | undefined;\n\n    /**\n     * Count of rows that were skipped\n     */\n    skip: number | null | undefined;\n\n    /**\n     * A stream that represents the kickout file\n     */\n    kickout: string | null | undefined;\n\n    /**\n     * Time at which the import started\n     */\n    start: Date | null | undefined;\n\n    /**\n     * Time at which the import finished\n     */\n    finish: Date | null | undefined;\n\n    /**\n     * Unique identifier for this import\n     */\n    taskId: number | null | undefined;\n\n}\nexport namespace Setup {\n    export enum TypeEnum {\n        UNKNOWNTYPE = <any> 'UNKNOWNTYPE',\n        CREATEAccountsAndMeters = <any> 'CREATE_AccountsAndMeters',\n        CREATEBuildingsAndOrganizations = <any> 'CREATE_BuildingsAndOrganizations',\n        CREATECostAvoidanceOtherSavings = <any> 'CREATE_CostAvoidanceOtherSavings',\n        CREATECostAvoidanceSpecialAdjustments = <any> 'CREATE_CostAvoidanceSpecialAdjustments',\n        CREATECostCenters = <any> 'CREATE_CostCenters',\n        CREATECustomers = <any> 'CREATE_Customers',\n        CREATEChargebackDistributionsVersions = <any> 'CREATE_ChargebackDistributionsVersions',\n        CREATERateSchedules = <any> 'CREATE_RateSchedules',\n        CREATEVendors = <any> 'CREATE_Vendors',\n        CREATEChannels = <any> 'CREATE_Channels',\n        UPDATECostCenters = <any> 'UPDATE_CostCenters',\n        UPDATEBuildingsAndOrganizations = <any> 'UPDATE_BuildingsAndOrganizations',\n        UPDATEAccountingCalendar = <any> 'UPDATE_AccountingCalendar',\n        UPDATEAccounts = <any> 'UPDATE_Accounts',\n        UPDATECustomFieldsAccount = <any> 'UPDATE_CustomFieldsAccount',\n        UPDATECostAvoidanceOtherSavings = <any> 'UPDATE_CostAvoidanceOtherSavings',\n        UPDATECostAvoidanceSpecialAdjustments = <any> 'UPDATE_CostAvoidanceSpecialAdjustments',\n        UPDATECustomers = <any> 'UPDATE_Customers',\n        CREATEGLCodesAndSubcodes = <any> 'CREATE_GLCodesAndSubcodes',\n        UPDATEGLCodesAndSubcodes = <any> 'UPDATE_GLCodesAndSubcodes',\n        UPDATEMeters = <any> 'UPDATE_Meters',\n        UPDATECustomFieldsMeter = <any> 'UPDATE_CustomFieldsMeter',\n        UPDATECustomFieldsPlace = <any> 'UPDATE_CustomFieldsPlace',\n        UPDATEUsers = <any> 'UPDATE_Users',\n        UPDATEVendors = <any> 'UPDATE_Vendors',\n        UPDATECustomFieldsVendor = <any> 'UPDATE_CustomFieldsVendor',\n        CREATEUsers = <any> 'CREATE_Users',\n        UPDATEChannels = <any> 'UPDATE_Channels',\n        UPDATEBillCalculations = <any> 'UPDATE_BillCalculations',\n        CREATEBillCalculations = <any> 'CREATE_BillCalculations',\n        UPDATEBillSplits = <any> 'UPDATE_BillSplits',\n        CREATEBillSplits = <any> 'CREATE_BillSplits',\n        UPDATEMeterGroups = <any> 'UPDATE_MeterGroups',\n        UPDATEBuildingGroups = <any> 'UPDATE_BuildingGroups',\n        CREATEReadings = <any> 'CREATE_Readings',\n        UPDATEReadings = <any> 'UPDATE_Readings',\n        CREATEMonthlyReadings = <any> 'CREATE_MonthlyReadings',\n        CREATEPlaceBenchmarks = <any> 'CREATE_PlaceBenchmarks',\n        UPDATEPlaceBenchmarks = <any> 'UPDATE_PlaceBenchmarks',\n        CREATEUserGroups = <any> 'CREATE_UserGroups',\n        UPDATEUserGroups = <any> 'UPDATE_UserGroups',\n        UPDATEUserGroupMembers = <any> 'UPDATE_UserGroupMembers',\n        UPDATEPlaceEnergyStarLink = <any> 'UPDATE_PlaceEnergyStarLink',\n        CREATEBuildingForecastWorksheet = <any> 'CREATE_BuildingForecastWorksheet',\n        UPDATEMeterEmissionSourceLink = <any> 'UPDATE_MeterEmissionSourceLink',\n        UPDATECustomGhgFactors = <any> 'UPDATE_CustomGhgFactors',\n        CREATEEmissionRecords = <any> 'CREATE_EmissionRecords',\n        UPDATEEmissionRecords = <any> 'UPDATE_EmissionRecords',\n        UPDATEBasicUnitConversions = <any> 'UPDATE_BasicUnitConversions',\n        CREATECollections = <any> 'CREATE_Collections',\n        UPDATECollections = <any> 'UPDATE_Collections',\n        UPDATEAdvancedUnitConversions = <any> 'UPDATE_AdvancedUnitConversions',\n        CREATEEmissionSources = <any> 'CREATE_EmissionSources',\n        UPDATEEmissionSources = <any> 'UPDATE_EmissionSources',\n        UPDATEBudgetMonthlyMeter = <any> 'UPDATE_BudgetMonthlyMeter',\n        UPDATEBudgetMonthlyBuilding = <any> 'UPDATE_BudgetMonthlyBuilding',\n        UPDATEBillPaymentDetails = <any> 'UPDATE_BillPaymentDetails',\n        UPDATEBillLineTypeMapping = <any> 'UPDATE_BillLineTypeMapping',\n        UPDATECostCategoryMapping = <any> 'UPDATE_CostCategoryMapping',\n        CREATESpaces = <any> 'CREATE_Spaces',\n        UPDATESpaces = <any> 'UPDATE_Spaces',\n        CREATEDataPoints = <any> 'CREATE_DataPoints',\n        UPDATEDataPoints = <any> 'UPDATE_DataPoints',\n        CREATEEsaReadings = <any> 'CREATE_EsaReadings',\n        UPDATEEsaReadings = <any> 'UPDATE_EsaReadings',\n        CREATESitesAndSpaces = <any> 'CREATE_SitesAndSpaces',\n        UPDATESitesAndSpaces = <any> 'UPDATE_SitesAndSpaces',\n        CREATEEsaChannels = <any> 'CREATE_EsaChannels',\n        UPDATEEsaChannels = <any> 'UPDATE_EsaChannels',\n        CREATEEsaMonthlyReadings = <any> 'CREATE_EsaMonthlyReadings'\n    }\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ShareRequest {\n    /**\n     * Set to True to share the item everyone When true, SharedUsers and SharedUserGroups should be set to empty lists [] <span class='property-internal'>Required</span>\n     */\n    sharedWithEveryone: boolean | null ;\n\n    /**\n     * The list of individual user ids an item should be shared with Should be an empty list [], when SharedWithEveryone is true <span class='property-internal'>Required</span>\n     */\n    sharedUserIds: Array<number> | null ;\n\n    /**\n     * The list of user group ids an item should be shared with Should be an empty list [], when SharedWithEveryone is true <span class='property-internal'>Required</span>\n     */\n    sharedUserGroupIds: Array<number> | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { UserChild } from './userChild';\nimport { UserGroupChild } from './userGroupChild';\n\n\nexport class ShareResponse {\n    /**\n     * True if the item is shared with everyone\n     */\n    sharedWithEveryone: boolean | null | undefined;\n\n    /**\n     * The list of individual users an item has been assigned to be shared with This does NOT take into account users that are in a shared user group\n     */\n    sharedUsers: Array<UserChild> | null | undefined;\n\n    /**\n     * The list of user groups an item has been assigned to be shared with\n     */\n    sharedUserGroups: Array<UserGroupChild> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class SharedBillLists {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    create: boolean | null | undefined;\n\n    /**\n     * \n     */\n    edit: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class SharedBillListsClassPermission {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    create: boolean | null | undefined;\n\n    /**\n     * \n     */\n    edit: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class SharedDashboardsOrMaps {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    create: boolean | null | undefined;\n\n    /**\n     * \n     */\n    edit: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class SharedDashboardsOrMapsClassPermission {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    create: boolean | null | undefined;\n\n    /**\n     * \n     */\n    edit: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class SharedRecordsLists {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    create: boolean | null | undefined;\n\n    /**\n     * \n     */\n    edit: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class SharedRecordsListsClassPermission {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    create: boolean | null | undefined;\n\n    /**\n     * \n     */\n    edit: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class SharedReports {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    create: boolean | null | undefined;\n\n    /**\n     * \n     */\n    edit: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class SharedReportsClassPermission {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    create: boolean | null | undefined;\n\n    /**\n     * \n     */\n    edit: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class SingleBoolean {\n    /**\n     * \n     */\n    value: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class SingleValue {\n    /**\n     * \n     */\n    value: any | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { BatchChild } from './batchChild';\nimport { UserChild } from './userChild';\n\n\nexport class SourceBatchLogResponse {\n    targetBatch: BatchChild | null | undefined;\n\n    /**\n     * Unique identifier for the operation that moved the bills. There can be multiple bills moved in a single operation, so this ID is the same for all bills moved in that operation.\n     */\n    moveOperationId: string | null | undefined;\n\n    /**\n     * Date/time offset of the operation\n     */\n    createdDate: Date | null | undefined;\n\n    /**\n     * Bill IDs that were moved in this operation.\n     */\n    billIds: Array<number> | null | undefined;\n\n    createdBy: UserChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class SpecialAdjustmentCreate {\n    /**\n     * Special adjustment method identifier <span class='property-internal'>Required</span>\n     */\n    specialAdjustmentMethodId: number | null ;\n\n    /**\n     * Reason for making the special adjustment <span class='property-internal'>Required</span>\n     */\n    comments: string | null ;\n\n    /**\n     * Amount See special adjustment method list for acceptable precision Precision of -1 means the value should not be passed in\n     */\n    value: number | null | undefined;\n\n    /**\n     * Special adjustment type identifier <span class='property-internal'>Required</span>\n     */\n    specialAdjustmentTypeId: number | null ;\n\n    /**\n     * Frequency type <span class='property-internal'>One of 'Recurring', 'Continuous'</span> <span class='property-internal'>Required</span>\n     */\n    frequency: string | null ;\n\n    /**\n     * Start date <span class='property-internal'>Required</span>\n     */\n    startDate: Date | null ;\n\n    /**\n     * End date <span class='property-internal'>Required</span> <span class='property-internal'>Must be greater than StartDate</span>\n     */\n    endDate: Date | null ;\n\n    /**\n     * Frequency start period Should only be passed when Frequency type is Recurring <span class='property-internal'>Required when frequency is set to recurring</span>\n     */\n    annualCycleStartMMDD: number | null | undefined;\n\n    /**\n     * Frequency end period Should only be passed when Frequency type is Recurring <span class='property-internal'>Required when frequency is set to recurring</span>\n     */\n    annualCycleEndMMDD: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class SpecialAdjustmentEdit {\n    /**\n     * The special adjustment method identifier <span class='property-internal'>Required</span>\n     */\n    specialAdjustmentMethodId: number | null ;\n\n    /**\n     * Reason for making the special adjustment <span class='property-internal'>Required</span>\n     */\n    comments: string | null ;\n\n    /**\n     * The amount See special adjustment method list for acceptable precision Precision of -1 means the value should not be passed in <span class='property-internal'>Required (defined)</span>\n     */\n    value: number | null | undefined;\n\n    /**\n     * The special adjustment type identifier <span class='property-internal'>Required</span>\n     */\n    specialAdjustmentTypeId: number | null ;\n\n    /**\n     * The start date <span class='property-internal'>Required</span>\n     */\n    startDate: Date | null ;\n\n    /**\n     * The end date <span class='property-internal'>Required</span> <span class='property-internal'>Must be greater than StartDate</span>\n     */\n    endDate: Date | null ;\n\n    /**\n     * The frequency start period Should only be passed when frequency type is Recurring <span class='property-internal'>Required (defined)</span>\n     */\n    annualCycleStartMMDD: number | null | undefined;\n\n    /**\n     * The frequency end period  Should only be passed when frequency type is Recurring <span class='property-internal'>Required (defined)</span>\n     */\n    annualCycleEndMMDD: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class SpecialAdjustmentMethod {\n    /**\n     * Description of Special Adjustment method\n     */\n    label: string | null | undefined;\n\n    /**\n     * Special Adjustment Method ID\n     */\n    specialAdjustmentMethodId: number | null | undefined;\n\n    /**\n     * Indicates whether or not this method is for Electric meters only\n     */\n    electricOnly: boolean | null | undefined;\n\n    /**\n     * The symbol for the Special Adjustment's input value\n     */\n    symbol: string | null | undefined;\n\n    /**\n     * The precision on the Special Adjustment's input value\n     */\n    precision: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AdjustmentBaseMethodChild } from './adjustmentBaseMethodChild';\nimport { Frequency } from './frequency';\nimport { SpecialAdjustmentType } from './specialAdjustmentType';\nimport { UserChild } from './userChild';\n\n\nexport class SpecialAdjustmentResponse {\n    /**\n     * Special adjustment identifier\n     */\n    specialAdjustmentId: number | null | undefined;\n\n    /**\n     * Sequence number; this controls the order in which special adjustments will be processed for this meter\n     */\n    indexNumber: number | null | undefined;\n\n    /**\n     * Amount\n     */\n    value: number | null | undefined;\n\n    specialAdjustmentMethod: AdjustmentBaseMethodChild | null | undefined;\n\n    frequency: Frequency | null | undefined;\n\n    /**\n     * Special adjustment comments\n     */\n    comments: string | null | undefined;\n\n    createdByUser: UserChild | null | undefined;\n\n    /**\n     * Created date\n     */\n    createdDate: Date | null | undefined;\n\n    modifiedByUser: UserChild | null | undefined;\n\n    /**\n     * Last modified date\n     */\n    modifiedDate: Date | null | undefined;\n\n    specialAdjustmentType: SpecialAdjustmentType | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class SpecialAdjustmentType {\n    /**\n     * Special Adjustment type identifier\n     */\n    specialAdjustmentTypeId: number | null | undefined;\n\n    /**\n     * Special Adjustment type code\n     */\n    specialAdjustmentTypeCode: string | null | undefined;\n\n    /**\n     * Special Adjustment type name\n     */\n    specialAdjustmentTypeInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { RelatedReportResponse } from './relatedReportResponse';\nimport { ReportCategoryChild } from './reportCategoryChild';\nimport { ReportChild } from './reportChild';\nimport { ReportSubscriptionChild } from './reportSubscriptionChild';\nimport { UserChild } from './userChild';\n\n\nexport class SpecificReportResponse {\n    /**\n     * Unique identifier for the report\n     */\n    specificReportId: number | null | undefined;\n\n    baseReport: ReportChild | null | undefined;\n\n    /**\n     * Report code\n     */\n    specificReportCode: string | null | undefined;\n\n    /**\n     * Report name\n     */\n    specificReportInfo: string | null | undefined;\n\n    /**\n     * Last time this report was run\n     */\n    lastViewed: Date | null | undefined;\n\n    /**\n     * Indicates if this is a recommended report\n     */\n    recommended: boolean | null | undefined;\n\n    reportCategory: ReportCategoryChild | null | undefined;\n\n    /**\n     * The report description\n     */\n    description: string | null | undefined;\n\n    /**\n     * Indicates if this report is visible to the current user\n     */\n    visible: boolean | null | undefined;\n\n    /**\n     * Indicates if this report is shared\n     */\n    shared: boolean | null | undefined;\n\n    user: UserChild | null | undefined;\n\n    subscription: ReportSubscriptionChild | null | undefined;\n\n    /**\n     * List of reports related to this report\n     */\n    relatedReports: Array<RelatedReportResponse> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { FilterResponse } from './filterResponse';\n\n\nexport class SpecificWidgetResponse {\n    /**\n     * Specific widget identifier\n     */\n    specificWidgetId: number | null | undefined;\n\n    /**\n     * User Widget title\n     */\n    title: string | null | undefined;\n\n    /**\n     * Widget title\n     */\n    widgetInfo: string | null | undefined;\n\n    /**\n     * Widget description\n     */\n    description: string | null | undefined;\n\n    /**\n     * User Widget description\n     */\n    userWidgetDescription: string | null | undefined;\n\n    /**\n     * Dashboard row\n     */\n    row: number | null | undefined;\n\n    /**\n     * Dashboard column\n     */\n    col: number | null | undefined;\n\n    /**\n     * Widget height\n     */\n    height: number | null | undefined;\n\n    /**\n     * Widget width\n     */\n    width: number | null | undefined;\n\n    /**\n     * Widget filters\n     */\n    filters: Array<FilterResponse> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class StatementDateTooLongAfterBillEndSettingRequest {\n    /**\n     * Threshold for how long the statement date can be after the end date If SettingStatus is set to Skip and no value is provided, EnergyCAP default will be set <span class='property-internal'>Must be between 0 and 2147483647</span> <span class='property-internal'>Required when SettingStatus is set to Check, or Hold</span>\n     */\n    days: number | null | undefined;\n\n    /**\n     * The status of the audit setting <span class='property-internal'>One of 'Check', 'Hold', 'Skip'</span> <span class='property-internal'>Required (defined)</span>\n     */\n    settingStatus: string | null | undefined;\n\n    /**\n     * Minimum Bill/Meter Cost.  This audit will run only when the cost meets the specified minimum cost <span class='property-internal'>Required (defined)</span>\n     */\n    minimumCost: number | null | undefined;\n\n    /**\n     * List of Assignees.  Ids of the users the flag should get assigned to when the audit fails. <span class='property-internal'>Required (defined)</span>\n     */\n    assignees: Array<number> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { UserChild } from './userChild';\n\n\nexport class StatementDateTooLongAfterBillEndSettingResponse {\n    /**\n     * Threshold for how long the statement date can be after the end date If SettingStatus is set to Skip and no value is provided, EnergyCAP default will be set\n     */\n    days: number | null | undefined;\n\n    /**\n     * The status of the audit setting - Possible values Check, Hold, Skip\n     */\n    settingStatus: string | null | undefined;\n\n    /**\n     * The setting code\n     */\n    settingCode: string | null | undefined;\n\n    /**\n     * A description of the setting\n     */\n    settingDescription: string | null | undefined;\n\n    /**\n     * Minimum Bill/Meter Cost.  This audit wwill run only when the cost meets the specified minimum cost\n     */\n    minimumCost: number | null | undefined;\n\n    /**\n     * List of Assignees.  UserChildDTO representing the users the flag should get assigned to when the audit fails.\n     */\n    assignees: Array<UserChild> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { OutlierSeverityChild } from './outlierSeverityChild';\nimport { UnitChild } from './unitChild';\n\n\nexport class StatisticsResponse {\n    /**\n     * The model value\n     */\n    model: number | null | undefined;\n\n    /**\n     * The difference between the model and the actual value\n     */\n    difference: number | null | undefined;\n\n    /**\n     * Statistical measure of how spread out numbers are from the average\n     */\n    standardDeviation: number | null | undefined;\n\n    /**\n     * Statistical measure of how far each value in the data set is from the mean\n     */\n    variance: number | null | undefined;\n\n    /**\n     * Statistical measure of how close the data is to the fitted regression line\n     */\n    rSquared: number | null | undefined;\n\n    unit: UnitChild | null | undefined;\n\n    severity: OutlierSeverityChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class SubmissionTypeResponse {\n    /**\n     * The identifier for the submission type\n     */\n    submissionTypeId: number | null | undefined;\n\n    /**\n     * The name of the submission type\n     */\n    submissionTypeName: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class SubtractRequest {\n    /**\n     * Meters in this list will have their use or cost subtracted during bill calculation <span class='property-internal'>Required (defined)</span> <span class='property-internal'>Only one of SubtractMeterIds, SubtractMeterGroupIds can be set</span>\n     */\n    subtractMeterIds: Array<number> | null | undefined;\n\n    /**\n     * Distinct meters from these meter groups will have their use or cost subtracted together during the bill calculation System auto groups cannot be used <span class='property-internal'>Required (defined)</span> <span class='property-internal'>Only one of SubtractMeterIds, SubtractMeterGroupIds can be set</span>\n     */\n    subtractMeterGroupIds: Array<number> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { MeterChild } from './meterChild';\nimport { MeterGroupChild } from './meterGroupChild';\n\n\nexport class SubtractResponse {\n    /**\n     * Meters in this list will have their use or cost subtracted during bill calculation\n     */\n    subtractMeters: Array<MeterChild> | null | undefined;\n\n    /**\n     * Distinct meters from these meter groups will have their use or cost subtracted together during the bill calculation\n     */\n    subtractMeterGroups: Array<MeterGroupChild> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class SumRequest {\n    /**\n     * Meters in this list will have their use or cost added together during the bill calculation <span class='property-internal'>Required (defined)</span> <span class='property-internal'>Only one of SumMeterIds, SumMeterGroupIds can be set</span>\n     */\n    sumMeterIds: Array<number> | null | undefined;\n\n    /**\n     * Distinct meters from these meter groups will have their use or cost added together during the bill calculation System auto groups cannot be used <span class='property-internal'>Required (defined)</span> <span class='property-internal'>Only one of SumMeterIds, SumMeterGroupIds can be set</span>\n     */\n    sumMeterGroupIds: Array<number> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { MeterChild } from './meterChild';\nimport { MeterGroupChild } from './meterGroupChild';\n\n\nexport class SumResponse {\n    /**\n     * Meters in this list will have their use or cost added together during the bill calculation\n     */\n    sumMeters: Array<MeterChild> | null | undefined;\n\n    /**\n     * Distinct meters from these meter groups will have their use or cost added together during the bill calculation\n     */\n    sumMeterGroups: Array<MeterGroupChild> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class SummarizationMethod {\n    /**\n     * The summarization method identifier\n     */\n    summarizationMethodId: number | null | undefined;\n\n    /**\n     * The name of the summarization method\n     */\n    summarizationMethodInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class SystemSettingsRequest {\n    /**\n     * Default topmost space ID for new users <span class='property-internal'>Required (defined)</span>\n     */\n    defaultTopmostSpaceId: number | null | undefined;\n\n    /**\n     * Cut over date when EnergyCAP officially takes over bill payments.  In order to modify this date, the user needs to have Special Permission (ECAP) and LicenseFeatureEnergyCAPPayments. It's not possible to change the field to null since the value is mandatory for (ECAP) and LicenseFeatureEnergyCAPPayments. For non (ECAP) and/or non LicenseFeatureEnergyCAPPayments users, use null or inform same value provided in the GET endpoint. <span class='property-internal'>Required (defined)</span>\n     */\n    billPayCutoverEndDate: Date | null | undefined;\n\n    /**\n     * Default topmost collection ID for new users <span class='property-internal'>Required (defined)</span>\n     */\n    defaultTopmostCollectionId: number | null | undefined;\n\n    /**\n     * The organization name <span class='property-internal'>Required (defined)</span>\n     */\n    organizationName: string | null | undefined;\n\n    /**\n     * Indicates whether or not organization name should be displayed in the application header <span class='property-internal'>Required</span>\n     */\n    displayOrganizationNameInHeader: boolean | null ;\n\n    /**\n     * The organization logo May be a base64-encoded PNG, JPG, or SVG image or a URI for an image hosted online A null value will clear the saved image <span class='property-internal'>Min length of 5</span> <span class='property-internal'>Required (defined)</span>\n     */\n    organizationLogo: string | null | undefined;\n\n    /**\n     * Number of minutes after which users will be automatically logged out <span class='property-internal'>Must be between 10 and 780</span> <span class='property-internal'>Required (defined)</span>\n     */\n    automaticLogoutMinutes: number | null | undefined;\n\n    /**\n     * Default country for new users <span class='property-internal'>Required (defined)</span>\n     */\n    defaultCountry: string | null | undefined;\n\n    /**\n     * ID of the default time zone for new meters <span class='property-internal'>Required</span>\n     */\n    defaultMeterTimeZoneId: number | null ;\n\n    /**\n     * Default date format for new users <span class='property-internal'>One of 'MM/dd/yyyy', 'dd/MM/yyyy'</span> <span class='property-internal'>Case sensitive</span> <span class='property-internal'>Required (defined)</span>\n     */\n    defaultDateFormat: string | null | undefined;\n\n    /**\n     * Default topmost cost center ID for new users <span class='property-internal'>Required (defined)</span>\n     */\n    defaultTopmostCostCenterId: number | null | undefined;\n\n    /**\n     * Default topmost place ID for new users <span class='property-internal'>Required (defined)</span>\n     */\n    defaultTopmostPlaceId: number | null | undefined;\n\n    /**\n     * Default user role ID for new users <span class='property-internal'>Required (defined)</span>\n     */\n    defaultUserRoleId: number | null | undefined;\n\n    /**\n     * Months to exclude from charts, including the current month. Set to 2 months by default. Ex. If the current month is October,  A value of 0 will not exclude any months,  A value of 1 will exclude the month of October,  A value of 2 will exclude October and September,  A value of 3 will exclude October, September, and August,  A value of 13 will exclude October and the last full year of data.  A null value will preserve the existing setting. <span class='property-internal'>Must be between 0 and 13</span> <span class='property-internal'>Required (defined)</span>\n     */\n    monthsToExcludeFromCharts: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CollectionChild } from './collectionChild';\nimport { CostCenterChild } from './costCenterChild';\nimport { PlaceChild } from './placeChild';\nimport { SystemUserRoleChild } from './systemUserRoleChild';\nimport { TimeZoneResponse } from './timeZoneResponse';\n\n\nexport class SystemSettingsResponse {\n    /**\n     * The organization name\n     */\n    organizationName: string | null | undefined;\n\n    /**\n     * Indicates whether or not organization name should be displayed in the application header\n     */\n    displayOrganizationNameInHeader: boolean | null | undefined;\n\n    /**\n     * The organization logo May be a base64-encoded PNG, JPG, or SVG image or a URI for an image hosted online A null value will clear the saved image\n     */\n    organizationLogo: string | null | undefined;\n\n    /**\n     * Number of minutes after which users will be automatically logged out\n     */\n    automaticLogoutMinutes: number | null | undefined;\n\n    /**\n     * Default country for new users\n     */\n    defaultCountry: string | null | undefined;\n\n    defaultMeterTimeZone: TimeZoneResponse | null | undefined;\n\n    /**\n     * Default date format for new users\n     */\n    defaultDateFormat: string | null | undefined;\n\n    defaultTopmostPlace: PlaceChild | null | undefined;\n\n    defaultCostCenter: CostCenterChild | null | undefined;\n\n    defaultCollection: CollectionChild | null | undefined;\n\n    defaultTopmostSpace: PlaceChild | null | undefined;\n\n    defaultUserRole: SystemUserRoleChild | null | undefined;\n\n    /**\n     * Number of months to exclude from powerview charts\n     */\n    monthsToExcludeFromCharts: number | null | undefined;\n\n    /**\n     * Cut over date when EnergyCAP officially takes over bill payments\n     */\n    billPayCutoverEndDate: Date | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class SystemUserRoleChild {\n    /**\n     * The user role identifier\n     */\n    userRoleId: number | null | undefined;\n\n    /**\n     * The user role name\n     */\n    userRoleInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { Permissions } from './permissions';\nimport { Product } from './product';\n\n\nexport class SystemUserRoleResponse {\n    /**\n     * Identifier for the system user role\n     */\n    systemUserRoleId: number | null | undefined;\n\n    /**\n     * Name of the system user role\n     */\n    systemUserRoleName: string | null | undefined;\n\n    /**\n     * Description of the system user role\n     */\n    description: string | null | undefined;\n\n    /**\n     * Number of users currently assigned to the system user role\n     */\n    usersAssignedCount: number | null | undefined;\n\n    permissions: Permissions | null | undefined;\n\n    /**\n     * Indicates the system user role that cannot be modified These roles can be hidden using the SetUserRoleHidden API\n     */\n    readOnly: boolean | null | undefined;\n\n    /**\n     * Hidden status of the system user role Roles Manage permission is required to access hidden roles\n     */\n    hidden: boolean | null | undefined;\n\n    /**\n     * List of products this system user role applies to\n     */\n    products: Array<Product> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionsRequest } from './permissionsRequest';\n\n\nexport class SystemUserRoleWithHiddenRequest {\n    /**\n     * Set a system user role to be hidden or shown Roles Manage permission is required to access hidden roles\n     */\n    hidden: boolean | null | undefined;\n\n    /**\n     * Name of the system user role <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 64 characters</span>\n     */\n    systemUserRoleName: string | null ;\n\n    /**\n     * Description of the system user role <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 1000 characters</span>\n     */\n    description: string | null ;\n\n    permissions: PermissionsRequest | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class TagChild {\n    /**\n     * \n     */\n    tagTypeId: number | null | undefined;\n\n    /**\n     * \n     */\n    tagTypeInfo: string | null | undefined;\n\n    /**\n     * \n     */\n    values: Array<string> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class TagResponse {\n    /**\n     * \n     */\n    tagTypeId: number | null | undefined;\n\n    /**\n     * \n     */\n    tagTypeInfo: string | null | undefined;\n\n    /**\n     * \n     */\n    values: Array<string> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class Target {\n    /**\n     * Is the target setting enabled\n     */\n    enable: boolean | null | undefined;\n\n    /**\n     * What multiplier to use for the target\n     */\n    multiplier: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { BatchChild } from './batchChild';\nimport { UserChild } from './userChild';\n\n\nexport class TargetBatchLogResponse {\n    sourceBatch: BatchChild | null | undefined;\n\n    /**\n     * Unique identifier for the operation that moved the bills. There can be multiple bills moved in a single operation, so this ID is the same for all bills moved in that operation.\n     */\n    moveOperationId: string | null | undefined;\n\n    /**\n     * Date/time offset of the operation\n     */\n    createdDate: Date | null | undefined;\n\n    /**\n     * Bill IDs that were moved in this operation.\n     */\n    billIds: Array<number> | null | undefined;\n\n    createdBy: UserChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { Target } from './target';\n\n\nexport class TargetSettings {\n    /**\n     * Target line label\n     */\n    label: string | null | undefined;\n\n    /**\n     * Target line base year\n     */\n    baseYear: number | null | undefined;\n\n    costTarget: Target | null | undefined;\n\n    useTarget: Target | null | undefined;\n\n    ghgTarget: Target | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class TaskChild {\n    /**\n     * Identifier for the Task\n     */\n    taskId: number | null | undefined;\n\n    /**\n     * GUID for the Task\n     */\n    taskGUId: string | null | undefined;\n\n    /**\n     * Status of the task\n     */\n    status: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class TaskEdit {\n    /**\n     *  <span class='property-internal'>Required</span>\n     */\n    taskNote: string | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { BatchChild } from './batchChild';\nimport { TaskType } from './taskType';\nimport { UserChild } from './userChild';\n\n\nexport class TaskResponse {\n    /**\n     * Deprecated property - HasAttachments always returns true\n     */\n    hasAttachments: boolean | null | undefined;\n\n    /**\n     * \n     */\n    taskId: number | null | undefined;\n\n    /**\n     * The task guid\n     */\n    taskGUId: string | null | undefined;\n\n    taskType: TaskType | null | undefined;\n\n    /**\n     * The date and time the task began\n     */\n    beginDate: Date | null | undefined;\n\n    /**\n     * The date and time the task finished. If the task is not finished, endDate will have no value\n     */\n    endDate: Date | null | undefined;\n\n    user: UserChild | null | undefined;\n\n    /**\n     * The task's message\n     */\n    message: string | null | undefined;\n\n    /**\n     * The task's output. For certain task types, this field could be sizable\n     */\n    output: any | null | undefined;\n\n    /**\n     * The task's settings\n     */\n    settings: any | null | undefined;\n\n    /**\n     * The task's status\n     */\n    status: string | null | undefined;\n\n    /**\n     * User provided note/comment for this Task\n     */\n    taskNote: string | null | undefined;\n\n    /**\n     * Count of bills that are in the analyzing state, used by bill import tasks only\n     */\n    analyzingCount: number | null | undefined;\n\n    /**\n     * The count of bills with unresolved flags on this task, used by bill import tasks only\n     */\n    unresolvedFlagCount: number | null | undefined;\n\n    /**\n     * The count of successful bills that still exist (i.e. have not been deleted), used by bill import tasks only\n     */\n    currentSuccessCount: number | null | undefined;\n\n    batch: BatchChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class TaskType {\n    /**\n     * The task type identifier\n     */\n    taskTypeId: number | null | undefined;\n\n    /**\n     * The code for task type\n     */\n    taskTypeCode: string | null | undefined;\n\n    /**\n     * The task type information\n     */\n    taskTypeInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { HighPrecisionTimeSeriesValue } from './highPrecisionTimeSeriesValue';\n\n\nexport class TemperatureResponse {\n    /**\n     * \n     */\n    values: Array<HighPrecisionTimeSeriesValue> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class TemplateChild {\n    /**\n     * \n     */\n    templateId: number | null | undefined;\n\n    /**\n     * \n     */\n    templateCode: string | null | undefined;\n\n    /**\n     * \n     */\n    templateInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CommodityChild } from './commodityChild';\nimport { ObservationType } from './observationType';\nimport { UnitResponse } from './unitResponse';\n\n\nexport class TemplateLine {\n    /**\n     * The template line identifier\n     */\n    templateLineId: number | null | undefined;\n\n    /**\n     * The begin day\n     */\n    beginDay: number | null | undefined;\n\n    /**\n     * The end day\n     */\n    endDay: number | null | undefined;\n\n    /**\n     * The display order\n     */\n    displayOrder: number | null | undefined;\n\n    /**\n     * The caption\n     */\n    caption: string | null | undefined;\n\n    /**\n     * The help tag\n     */\n    helpTag: string | null | undefined;\n\n    /**\n     * Indicates whether a template line value is required or not required\n     */\n    isRequired: boolean | null | undefined;\n\n    /**\n     * The from previous template line identifier\n     */\n    fromPrevTemplateLineId: number | null | undefined;\n\n    unit: UnitResponse | null | undefined;\n\n    costUnit: UnitResponse | null | undefined;\n\n    commodity: CommodityChild | null | undefined;\n\n    observationType: ObservationType | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CommodityChild } from './commodityChild';\nimport { UnitChild } from './unitChild';\nimport { VersionChild } from './versionChild';\n\n\nexport class TemplateResponse {\n    /**\n     * \n     */\n    templateId: number | null | undefined;\n\n    /**\n     * \n     */\n    templateCode: string | null | undefined;\n\n    /**\n     * \n     */\n    templateInfo: string | null | undefined;\n\n    /**\n     * \n     */\n    note: string | null | undefined;\n\n    commodity: CommodityChild | null | undefined;\n\n    demandUnit: UnitChild | null | undefined;\n\n    useUnit: UnitChild | null | undefined;\n\n    /**\n     * \n     */\n    versions: Array<VersionChild> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class TemplateVendorLineRequest {\n    /**\n     * Specifies the type of line to create Only cost observation types are allowed To get the valid list of observation type ids call the GetObservationTypes API with ?filter=nounId one of '4'|'6'|'23' <span class='property-internal'>Required</span>\n     */\n    observationTypeId: number | null ;\n\n    /**\n     * The label for this line, that will be shown on the bill <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 100 characters</span>\n     */\n    caption: string | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { TemplateLine } from './templateLine';\n\n\nexport class TemplateVersion {\n    /**\n     * The identifier for the template\n     */\n    templateId: number | null | undefined;\n\n    /**\n     * The identifier for the template version\n     */\n    versionId: number | null | undefined;\n\n    /**\n     * The begin date of the template version\n     */\n    beginDate: Date | null | undefined;\n\n    /**\n     * The end date of the template version\n     */\n    endDate: Date | null | undefined;\n\n    /**\n     * An array of template lines belonging to the template version\n     */\n    templateLines: Array<TemplateLine> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class TimeFormatResponse {\n    /**\n     * Display name for time format\n     */\n    displayName: string | null | undefined;\n\n    /**\n     * Format mask for time format\n     */\n    formatMask: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { TimeSeriesEntity } from './timeSeriesEntity';\nimport { TimeSeriesValue } from './timeSeriesValue';\n\n\nexport class TimeSeriesDataResponse {\n    /**\n     * \n     */\n    entities: Array<TimeSeriesEntity> | null | undefined;\n\n    /**\n     * \n     */\n    values: Array<TimeSeriesValue> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class TimeSeriesEntity {\n    /**\n     * \n     */\n    type: string | null | undefined;\n\n    /**\n     * \n     */\n    id: number | null | undefined;\n\n    /**\n     * \n     */\n    display: string | null | undefined;\n\n    /**\n     * \n     */\n    secondaryDisplay: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { HighPrecisionTimeSeriesValue } from './highPrecisionTimeSeriesValue';\nimport { HighPrecisionValue } from './highPrecisionValue';\n\n\n/**\n * A collection of \\\"min\\\", \\\"max\\\", \\\"sum\\\", \\\"average\\\" Values, associated with an Entity.\n */\nexport class TimeSeriesEntitySummary {\n    /**\n     * \n     */\n    entityId: number | null | undefined;\n\n    min: HighPrecisionTimeSeriesValue | null | undefined;\n\n    max: HighPrecisionTimeSeriesValue | null | undefined;\n\n    sum: HighPrecisionValue | null | undefined;\n\n    average: HighPrecisionValue | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { HighPrecisionTimeSeriesValue } from './highPrecisionTimeSeriesValue';\nimport { HighPrecisionValue } from './highPrecisionValue';\n\n\n/**\n * A collection of four summarized Values identified as \\\"min\\\", \\\"max\\\", \\\"sum\\\", \\\"average\\\".\n */\nexport class TimeSeriesSummary {\n    min: HighPrecisionTimeSeriesValue | null | undefined;\n\n    max: HighPrecisionTimeSeriesValue | null | undefined;\n\n    sum: HighPrecisionValue | null | undefined;\n\n    average: HighPrecisionValue | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class TimeSeriesValue {\n    /**\n     * \n     */\n    id: number | null | undefined;\n\n    /**\n     * \n     */\n    date: Date | null | undefined;\n\n    /**\n     * Value, as a decimal. Note that this could be very large, and/or to a high degree of precision. In particular, in Javascript, it might not be able to be precisely represented in a 64-bit float. See: `formattedValue`.\n     */\n    value: number | null | undefined;\n\n    /**\n     * Value, serialized as a String. This is the value that should be displayed to the User. If Value is very large or to a high degree of precision its Number value in Javascript cannot be relied upon. Other client languages might have similar limitations. In order to guarantee that Value is displayed to the User to the same degree of precision as is stored in the readings database, this `formattedValue` property must be used.\n     */\n    formattedValue: string | null | undefined;\n\n    /**\n     * The Unit that `Value` is expressed in. E.g. \\\"kWh\\\".\n     */\n    unit: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class TimeZoneChild {\n    /**\n     * \n     */\n    timeZoneId: number | null | undefined;\n\n    /**\n     * \n     */\n    timeZoneCode: string | null | undefined;\n\n    /**\n     * \n     */\n    timeZoneInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class TimeZoneResponse {\n    /**\n     * The time zone id\n     */\n    timeZoneId: number | null | undefined;\n\n    /**\n     * The time zone code\n     */\n    timeZoneCode: string | null | undefined;\n\n    /**\n     * The time zone info\n     */\n    timeZoneInfo: string | null | undefined;\n\n    /**\n     * The time zone gmt offset\n     */\n    gmtOffset: number | null | undefined;\n\n    /**\n     * Indicates if the time zone observes daylight savings time or not\n     */\n    daylightSavingsObserved: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class ToggleVisible {\n    /**\n     *  <span class='property-internal'>Required (defined)</span>\n     */\n    visible: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class TooManyConsecutiveEstimatedBillsSettingRequest {\n    /**\n     * Threshold for how many bills can be estimated in a row If SettingStatus is set to Skip and no value is provided, EnergyCAP default will be set <span class='property-internal'>Must be between 1 and 2147483647</span> <span class='property-internal'>Required when SettingStatus is set to Check, or Hold</span>\n     */\n    bills: number | null | undefined;\n\n    /**\n     * The status of the audit setting <span class='property-internal'>One of 'Check', 'Hold', 'Skip'</span> <span class='property-internal'>Required (defined)</span>\n     */\n    settingStatus: string | null | undefined;\n\n    /**\n     * Minimum Bill/Meter Cost.  This audit will run only when the cost meets the specified minimum cost <span class='property-internal'>Required (defined)</span>\n     */\n    minimumCost: number | null | undefined;\n\n    /**\n     * List of Assignees.  Ids of the users the flag should get assigned to when the audit fails. <span class='property-internal'>Required (defined)</span>\n     */\n    assignees: Array<number> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { UserChild } from './userChild';\n\n\nexport class TooManyConsecutiveEstimatedBillsSettingResponse {\n    /**\n     * Threshold for how many bills can be estimated in a row If SettingStatus is set to Skip and no value is provided, EnergyCAP default will be set\n     */\n    bills: number | null | undefined;\n\n    /**\n     * The status of the audit setting - Possible values Check, Hold, Skip\n     */\n    settingStatus: string | null | undefined;\n\n    /**\n     * The setting code\n     */\n    settingCode: string | null | undefined;\n\n    /**\n     * A description of the setting\n     */\n    settingDescription: string | null | undefined;\n\n    /**\n     * Minimum Bill/Meter Cost.  This audit wwill run only when the cost meets the specified minimum cost\n     */\n    minimumCost: number | null | undefined;\n\n    /**\n     * List of Assignees.  UserChildDTO representing the users the flag should get assigned to when the audit fails.\n     */\n    assignees: Array<UserChild> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CollectionChild } from './collectionChild';\nimport { Icon } from './icon';\n\n\nexport class TopmostCollection {\n    /**\n     * User's topmost combines multiple collections\n     */\n    isMultiTopmostCollection: boolean | null | undefined;\n\n    /**\n     * \n     */\n    multiTopmostCollections: Array<CollectionChild> | null | undefined;\n\n    /**\n     * The collection identifier\n     */\n    collectionId: number | null | undefined;\n\n    /**\n     * The collection code\n     */\n    collectionCode: string | null | undefined;\n\n    /**\n     * The collection info\n     */\n    collectionInfo: string | null | undefined;\n\n    collectionIcon: Icon | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CostCenterChild } from './costCenterChild';\n\n\nexport class TopmostCostCenter {\n    /**\n     * User's topmost combines multiple cost centers\n     */\n    isMultiTopmostCostCenter: boolean | null | undefined;\n\n    /**\n     * \n     */\n    multiTopmostCostCenters: Array<CostCenterChild> | null | undefined;\n\n    /**\n     * The cost center identifier\n     */\n    costCenterId: number | null | undefined;\n\n    /**\n     * The cost center code\n     */\n    costCenterCode: string | null | undefined;\n\n    /**\n     * The cost center info\n     */\n    costCenterInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PlaceChild } from './placeChild';\nimport { PlaceTypeResponse } from './placeTypeResponse';\n\n\nexport class TopmostPlace {\n    /**\n     * User's topmost combines multiple places\n     */\n    isMultiTopmostPlace: boolean | null | undefined;\n\n    /**\n     * \n     */\n    multiTopmostPlaces: Array<PlaceChild> | null | undefined;\n\n    placeType: PlaceTypeResponse | null | undefined;\n\n    /**\n     * Tells whether or not the place's data is rolled up to its parents.\n     */\n    isDataRolledUp: boolean | null | undefined;\n\n    /**\n     * The place identifier\n     */\n    placeId: number | null | undefined;\n\n    /**\n     * The place code\n     */\n    placeCode: string | null | undefined;\n\n    /**\n     * The place info\n     */\n    placeInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PlaceChild } from './placeChild';\nimport { PlaceTypeResponse } from './placeTypeResponse';\n\n\nexport class TopmostSpace {\n    /**\n     * User's topmost combines multiple places\n     */\n    isMultiTopmostPlace: boolean | null | undefined;\n\n    /**\n     * \n     */\n    multiTopmostPlaces: Array<PlaceChild> | null | undefined;\n\n    placeType: PlaceTypeResponse | null | undefined;\n\n    /**\n     * Tells whether or not the place's data is rolled up to its parents.\n     */\n    isDataRolledUp: boolean | null | undefined;\n\n    /**\n     * The place identifier\n     */\n    placeId: number | null | undefined;\n\n    /**\n     * The place code\n     */\n    placeCode: string | null | undefined;\n\n    /**\n     * The place info\n     */\n    placeInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class TotalBillCostDoesNotMatchLineItemTypesSettingRequest {\n    /**\n     * List of observation type codes If SettingStatus is set to Skip and no value is provided, EnergyCAP default will be set <span class='property-internal'>Required when SettingStatus is set to Check, or Hold</span> <span class='property-internal'>List cannot be empty</span>\n     */\n    lineItemTypes: Array<string> | null | undefined;\n\n    /**\n     * The status of the audit setting <span class='property-internal'>One of 'Check', 'Hold', 'Skip'</span> <span class='property-internal'>Required (defined)</span>\n     */\n    settingStatus: string | null | undefined;\n\n    /**\n     * Minimum Bill/Meter Cost.  This audit will run only when the cost meets the specified minimum cost <span class='property-internal'>Required (defined)</span>\n     */\n    minimumCost: number | null | undefined;\n\n    /**\n     * List of Assignees.  Ids of the users the flag should get assigned to when the audit fails. <span class='property-internal'>Required (defined)</span>\n     */\n    assignees: Array<number> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { UserChild } from './userChild';\n\n\nexport class TotalBillCostDoesNotMatchLineItemTypesSettingResponse {\n    /**\n     * List of observation type codes If SettingStatus is set to Skip and no value is provided, EnergyCAP default will be set\n     */\n    lineItemTypes: Array<string> | null | undefined;\n\n    /**\n     * The status of the audit setting - Possible values Check, Hold, Skip\n     */\n    settingStatus: string | null | undefined;\n\n    /**\n     * The setting code\n     */\n    settingCode: string | null | undefined;\n\n    /**\n     * A description of the setting\n     */\n    settingDescription: string | null | undefined;\n\n    /**\n     * Minimum Bill/Meter Cost.  This audit wwill run only when the cost meets the specified minimum cost\n     */\n    minimumCost: number | null | undefined;\n\n    /**\n     * List of Assignees.  UserChildDTO representing the users the flag should get assigned to when the audit fails.\n     */\n    assignees: Array<UserChild> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PeriodRange } from './periodRange';\nimport { TimeSeriesEntity } from './timeSeriesEntity';\nimport { TimeSeriesValue } from './timeSeriesValue';\nimport { TrendTarget } from './trendTarget';\n\n\n/**\n * This DTO is used for the Trend Widget\n */\nexport class TrendDataResponse {\n    target: TrendTarget | null | undefined;\n\n    periodRange: PeriodRange | null | undefined;\n\n    /**\n     * The latest calendar or fiscal year, denotes the YTD year\n     */\n    currentYear: number | null | undefined;\n\n    /**\n     * The type of calendar periods being returned, either \\\"Calendar\\\" or \\\"Fiscal\\\". This applies to CurrentYear, PeriodRange, and dates in the Values array\n     */\n    calendarType: string | null | undefined;\n\n    /**\n     * \n     */\n    entities: Array<TimeSeriesEntity> | null | undefined;\n\n    /**\n     * \n     */\n    values: Array<TimeSeriesValue> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\n/**\n * Target data for use / cost / target emissions data\n */\nexport class TrendTarget {\n    /**\n     * Target year\n     */\n    targetYear: number | null | undefined;\n\n    /**\n     * Target label\n     */\n    targetLabel: string | null | undefined;\n\n    /**\n     * Target YTD label\n     */\n    targetYTDLabel: string | null | undefined;\n\n    /**\n     * Total value (use or cost) for the target year in the unit of the value being reported on\n     */\n    targetValue: number | null | undefined;\n\n    /**\n     * Year to date value (use or cost) for the target year in the unit of the value being reported on\n     */\n    targetYTDValue: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { UDFSelectValueCreate } from './uDFSelectValueCreate';\n\n\nexport class UDFCreate {\n    /**\n     * The UDF type. Possible value include: \\\"Vendor\\\", \\\"Place\\\", \\\"Account\\\", \\\"Meter\\\", \\\"ChannelVersion\\\", \\\"Rate\\\", \\\"Bill\\\", \\\"EnergyProject\\\", \\\"Collection\\\", and \\\"EmissionSource\\\". <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 32 characters</span>\n     */\n    udfType: string | null ;\n\n    /**\n     * The UDF's name <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 32 characters</span>\n     */\n    name: string | null ;\n\n    /**\n     * Description for the UDF. Displayed next to the field name during data entry. <span class='property-internal'>Must be between 0 and 128 characters</span>\n     */\n    description: string | null | undefined;\n\n    /**\n     * The UDF's data type identifier.  Possible value include: 1 (boolean), 2 (integer), 3 (string),  4 (double), 6 (date), 12 (select list), 13 (url), 15 (formatted text), 16 (image), 17 (pdf), 18 (document file), 19 (JSON text) <span class='property-internal'>Required</span>\n     */\n    dataTypeId: number | null ;\n\n    /**\n     * <p>The UDF's display order</p> <p>A value of 1 or less will put this record the beginning of the list</p> <p>If the display order exists it will put this record at that spot. Display orders greater than or equal to this will be incremented by 1</p> <p>A value greater than the stored max will put this record at the end of the list</p> <span class='property-internal'>Required</span>\n     */\n    displayOrder: number | null ;\n\n    /**\n     * <p>An array of options to populate a UDF select list.</p> <p>Required when dataTypeId is 12 otherwise this will be ignored.</p> <span class='property-internal'>Required when dataTypeId is set to 12, case sensitive.</span>\n     */\n    udfSelectValues: Array<UDFSelectValueCreate> | null | undefined;\n\n    /**\n     * Marks a UDF as important. Important fields are highlighted during data entry.\n     */\n    important: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { UDFSelectValueEdit } from './uDFSelectValueEdit';\n\n\nexport class UDFEdit {\n    /**\n     * The UDF's name <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 32 characters</span>\n     */\n    name: string | null ;\n\n    /**\n     * The description for the UDF.  Not required, if left blank the description will not be updated. <span class='property-internal'>Must be between 0 and 128 characters</span>\n     */\n    description: string | null | undefined;\n\n    /**\n     * <p>The UDF's display order</p> <p>A value of 1 or less will put this record the beginning of the list</p> <p>A value greater than the stored max will put this record at the end of the list</p> <p>When the old display order of the UDF being updated is less than the new specified display order, decrement the display order of all other UDFs falling between the old and new display order</p> <p>When the old display order of the UDF being updated is greater than the new specified display order, increment the display order of all other UDFs falling between the old and new display order</p> <p>All UDF lying outside the range of display orders being updated retain their original values</p> <span class='property-internal'>Required</span>\n     */\n    displayOrder: number | null ;\n\n    /**\n     * <p>An array of options to populate a UDF select list.</p> <p>Required when the UDF being edited has a dataTypeId of 12 otherwise this will be ignored.</p> <p>To remove an option from the select list, omit it from this array. Options that are in use may not be deleted. To add a new option, pass in null as the udfSelectValueId</p>\n     */\n    udfSelectValues: Array<UDFSelectValueEdit> | null | undefined;\n\n    /**\n     * Important flag for the UDF. UDFs marked as important will be highlighted during data entry.  Not required, if left blank the flag's value will not be changed.\n     */\n    important: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { DataTypeResponse } from './dataTypeResponse';\nimport { UDFSelectValueEntityResponse } from './uDFSelectValueEntityResponse';\n\n\nexport class UDFFieldChild {\n    /**\n     *  <span class='property-internal'>Required (defined)</span>\n     */\n    udfId: number | null | undefined;\n\n    dataType: DataTypeResponse | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Required (defined)</span>\n     */\n    name: string | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Required (defined)</span>\n     */\n    description: string | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Required (defined)</span>\n     */\n    displayOrder: number | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Required (defined)</span>\n     */\n    value: string | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Required (defined)</span>\n     */\n    udfSelectValues: Array<UDFSelectValueEntityResponse> | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Required (defined)</span>\n     */\n    important: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { DataTypeResponse } from './dataTypeResponse';\nimport { UDFSelectValueResponse } from './uDFSelectValueResponse';\n\n\nexport class UDFResponse {\n    /**\n     * The identifier of the custom field. <span class='property-internal'>Required (defined)</span>\n     */\n    udfId: number | null | undefined;\n\n    /**\n     * The name of the custom field. <span class='property-internal'>Required (defined)</span>\n     */\n    name: string | null | undefined;\n\n    /**\n     * The description for the custom field. <span class='property-internal'>Required (defined)</span>\n     */\n    description: string | null | undefined;\n\n    /**\n     * The type of the udf. Values include: Account, Meter, Vendor, Place, ChannelVersion, Rate, Bill, \\\"EnergyProject\\\", \\\"Collection\\\", and \\\"EmissionSource\\\". <span class='property-internal'>Required (defined)</span>\n     */\n    udfType: string | null | undefined;\n\n    dataType: DataTypeResponse | null | undefined;\n\n    /**\n     * The display order of the custom field. <span class='property-internal'>Required (defined)</span>\n     */\n    displayOrder: number | null | undefined;\n\n    /**\n     * Select values of the custom field, if it is a select list (DataType = 12). <span class='property-internal'>Required (defined)</span>\n     */\n    udfSelectValues: Array<UDFSelectValueResponse> | null | undefined;\n\n    /**\n     * The number of times this custom field has been used. <span class='property-internal'>Required (defined)</span>\n     */\n    count: number | null | undefined;\n\n    /**\n     * If true, then this udf is a system custom field <span class='property-internal'>Required (defined)</span>\n     */\n    locked: boolean | null | undefined;\n\n    /**\n     * If true, this custom field is important. <span class='property-internal'>Required (defined)</span>\n     */\n    important: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class UDFSelectValueCreate {\n    /**\n     * The UDF select option's value <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 255 characters</span>\n     */\n    value: string | null ;\n\n    /**\n     * The UDF select option's display order <span class='property-internal'>Required</span>\n     */\n    displayOrder: number | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class UDFSelectValueEdit {\n    /**\n     * The UDF select value identifier. When creating a new option, assign null to this property. <span class='property-internal'>Required (defined)</span>\n     */\n    udfSelectValueId: number | null | undefined;\n\n    /**\n     * The UDF select option's value <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 255 characters</span>\n     */\n    value: string | null ;\n\n    /**\n     * The UDF select option's display order <span class='property-internal'>Required</span>\n     */\n    displayOrder: number | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class UDFSelectValueEntityResponse {\n    /**\n     *  <span class='property-internal'>Required (defined)</span>\n     */\n    udfSelectValueId: number | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Required (defined)</span>\n     */\n    value: string | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Required (defined)</span>\n     */\n    displayOrder: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class UDFSelectValueResponse {\n    /**\n     * \n     */\n    udfSelectValueId: number | null | undefined;\n\n    /**\n     * \n     */\n    value: string | null | undefined;\n\n    /**\n     * \n     */\n    displayOrder: number | null | undefined;\n\n    /**\n     * \n     */\n    count: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class UDFSelectValueUpdate {\n    /**\n     * The UDF select value identifier. When creating a new option, assign null to this property. <span class='property-internal'>Required (defined)</span>\n     */\n    udfSelectValueId: number | null | undefined;\n\n    /**\n     * The UDF select option's value <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 255 characters</span>\n     */\n    value: string | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { UDFSelectValueUpdate } from './uDFSelectValueUpdate';\n\n\nexport class UDFUpdate {\n    /**\n     * The Udf's ID. When creating a new UDF, assign null to this property. <span class='property-internal'>Required (defined)</span>\n     */\n    udfId: number | null | undefined;\n\n    /**\n     * The UDF's name <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 32 characters</span>\n     */\n    name: string | null ;\n\n    /**\n     * The UDF's description <span class='property-internal'>Must be between 0 and 128 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    description: string | null | undefined;\n\n    /**\n     * The UDF's data type identifier. Possible value include 1 (boolean), 2 (integer), 3 (string), 4 (double), 6 (date), 12 (select list) and 13 (url) <span class='property-internal'>Required</span>\n     */\n    dataTypeId: number | null ;\n\n    /**\n     * <p>An array of options to populate a UDF select list.</p> <p>Required when the UDF being edited has a dataTypeId of 12 otherwise this will be ignored.</p> <p>To remove an option from the select list, omit it from this array. Options that are in use may not be deleted. To add a new option, pass in null as the udfSelectValueId</p> <span class='property-internal'>Required when dataTypeId is set to 12, case sensitive.</span>\n     */\n    udfSelectValues: Array<UDFSelectValueUpdate> | null | undefined;\n\n    /**\n     * Used to mark a UDF as important. Important UDFs are highlighted during data entry. <span class='property-internal'>Required (defined)</span>\n     */\n    important: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class UDFValue {\n    /**\n     * udfId of the UDF being edited <span class='property-internal'>Required (defined)</span>\n     */\n    udfId: number | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Required (defined)</span>\n     */\n    value: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { UnitType } from './unitType';\n\n\nexport class Unit {\n    /**\n     * \n     */\n    unitId: number | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Must be between 0 and 16 characters</span>\n     */\n    unitCode: string | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Must be between 0 and 32 characters</span>\n     */\n    unitInfo: string | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Must be between 0 and 64 characters</span>\n     */\n    unitDisplayName: string | null | undefined;\n\n    unitType: UnitType | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class UnitChild {\n    /**\n     * The unit identifier\n     */\n    unitId: number | null | undefined;\n\n    /**\n     * The unit code\n     */\n    unitCode: string | null | undefined;\n\n    /**\n     * The unit info\n     */\n    unitInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { UnitType } from './unitType';\n\n\nexport class UnitResponse {\n    /**\n     * \n     */\n    unitId: number | null | undefined;\n\n    /**\n     * \n     */\n    unitCode: string | null | undefined;\n\n    /**\n     * \n     */\n    unitInfo: string | null | undefined;\n\n    unitType: UnitType | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class UnitSystemSettings {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class UnitSystemSettingsClassPermission {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class UnitType {\n    /**\n     * \n     */\n    unitTypeId: number | null | undefined;\n\n    /**\n     * \n     */\n    unitTypeCode: string | null | undefined;\n\n    /**\n     * \n     */\n    unitTypeInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class UpdateApprovedBills {\n    /**\n     * \n     */\n    edit: boolean | null | undefined;\n\n    /**\n     * \n     */\n    delete: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class UpdateApprovedBillsClassPermission {\n    /**\n     * \n     */\n    edit: boolean | null | undefined;\n\n    /**\n     * \n     */\n    delete: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\n/**\n * \n */\nexport class UpdateBatchStatusRequest {\n    /**\n     * The status to set on the batch <span class='property-internal'>Required</span> <span class='property-internal'>One of 'Open', 'Pending', 'Closed'</span> <span class='property-internal'>Case sensitive</span>\n     */\n    batchStatus: string | null ;\n\n    /**\n     * The batch note, referred to as a comment in the application when setting state to pending. If opening another user's batch, the note will only be applied to the requesting user's open batch that is being set to pending (if any). If null, the note will not be updated. Set to an empty string to remove the current note. <span class='property-internal'>Must be between 0 and 255 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    note: string | null | undefined;\n\n    /**\n     * If not provided or false, any open batches for the requesting user will be set to pending, when another pending batch is switched to open If true, any open batches for the requesting user will be left open, when another pending batch is switched to open. <span class='property-internal'>Required (defined)</span>\n     */\n    leaveOpenBatchesAsIs: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class UpdateResult {\n    /**\n     *  <span class='property-internal'>Required (defined)</span>\n     */\n    selected: number | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Required (defined)</span>\n     */\n    updated: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class UpdateSkippedResult {\n    /**\n     *  <span class='property-internal'>Required (defined)</span>\n     */\n    skipped: number | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Required (defined)</span>\n     */\n    skippedEntityIds: Array<number> | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Required (defined)</span>\n     */\n    selected: number | null | undefined;\n\n    /**\n     *  <span class='property-internal'>Required (defined)</span>\n     */\n    updated: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class UpdateUnitsOnExistingBills {\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class UpdateUnitsOnExistingBillsClassPermission {\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class UpdatedOnlyResult {\n    /**\n     *  <span class='property-internal'>Required (defined)</span>\n     */\n    updated: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class UpsertAggregateMeterRequest {\n    /**\n     * Aggregation Meter Identifier If AggregateMeterId is null: a new aggregate meter and version is always created If AggregateMeterId is not null: it must exist and only associated with 1 account otherwise error If AggregateMeterId exists: we will always update the Aggregate's MeterInfo and AccountInfo If AggregateMeterId exists and no version exists on the same account and meter with the specified billing period: a new version is created If AggregateMeterId exists and a version exists on the same account and meter with the specified billing period: the version is updated <span class='property-internal'>Required (defined)</span>\n     */\n    aggregateMeterId: number | null | undefined;\n\n    /**\n     * Begin period for the version in the format YYYYMM <span class='property-internal'>Required</span> <span class='property-internal'>Valid billing period between 190001 and 300001</span>\n     */\n    beginPeriod: number | null ;\n\n    /**\n     * Meters to aggregate All meters must match the commodity of the aggregate meter All meters must be on the place the aggregate is created All meters should be hidden <span class='property-internal'>Required</span> <span class='property-internal'>Cannot be Empty</span>\n     */\n    sourceMeterIds: Array<number> | null ;\n\n    /**\n     * The identifier for the aggregate meter's commodity <span class='property-internal'>Required</span>\n     */\n    commodityId: number | null ;\n\n    /**\n     * The aggregate meter info <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 50 characters</span>\n     */\n    aggregateMeterInfo: string | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class UserChild {\n    /**\n     * The user identifier\n     */\n    userId: number | null | undefined;\n\n    /**\n     * The user code\n     */\n    userCode: string | null | undefined;\n\n    /**\n     * The user's full name\n     */\n    fullName: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class UserChildWithEmail {\n    /**\n     * Email ID of the user\n     */\n    email: string | null | undefined;\n\n    /**\n     * The user identifier\n     */\n    userId: number | null | undefined;\n\n    /**\n     * The user code\n     */\n    userCode: string | null | undefined;\n\n    /**\n     * The user's full name\n     */\n    fullName: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class UserCreateRequest {\n    /**\n     * The user code. This is the user name that is used on sign-in <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 65 characters</span>\n     */\n    userCode: string | null ;\n\n    /**\n     * The user's full name <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 32 characters</span>\n     */\n    fullName: string | null ;\n\n    /**\n     * The user's password. Password is not changed if this field is empty. Not available for users whose identity is managed externally. <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 128 characters</span>\n     */\n    password: string | null ;\n\n    /**\n     * The user's email address <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 128 characters</span>\n     */\n    email: string | null ;\n\n    /**\n     * Create User with one or multiple topmost cost center ids The CostCenterIds must be in the creating user's topmost <span class='property-internal'>Required</span> <span class='property-internal'>Cannot be Empty</span>\n     */\n    topmostCostCenterIds: Array<number> | null ;\n\n    /**\n     * Create User with one or multiple topmost place ids The PlaceIds must be in the creating user's topmost <span class='property-internal'>Required</span> <span class='property-internal'>Cannot be Empty</span>\n     */\n    topmostPlaceIds: Array<number> | null ;\n\n    /**\n     * Update a user to one or multiple topmost EsaSpace ids The EsaSpaceIds must be in the editing user's topmost <span class='property-internal'>Required</span> <span class='property-internal'>Cannot be Empty</span>\n     */\n    topmostSpaceIds: Array<number> | null ;\n\n    /**\n     * Create User with one or multiple topmost collection ids The CollectionIds must be in the creating user's topmost <span class='property-internal'>Required</span> <span class='property-internal'>Cannot be Empty</span>\n     */\n    topmostCollectionIds: Array<number> | null ;\n\n    /**\n     * Whether or not the user signs in using active directory. This is used for install client only\n     */\n    activeDirectory: boolean | null | undefined;\n\n    /**\n     * Whether or not the user is active\n     */\n    active: boolean | null | undefined;\n\n    /**\n     * Days until the user's password expires Must be set to 0 for users whose identity is managed externally. <span class='property-internal'>Required</span>\n     */\n    passwordExpirationInterval: number | null ;\n\n    /**\n     * Force the user's password to have a minimum of 8 characters,  containing at least 1 uppercase, 1 lowercase, 1 number, and 1 symbol. Must be set to false for users whose identity is managed externally. <span class='property-internal'>Required</span>\n     */\n    strongPassword: boolean | null ;\n\n    /**\n     * Force the user to change their password on next login.  Must be set to false for users whose identity is managed externally. <span class='property-internal'>Required</span>\n     */\n    forcePasswordChange: boolean | null ;\n\n    /**\n     * User role id of the user being created User role id is required <span class='property-internal'>Required</span>\n     */\n    userRoleId: number | null ;\n\n    /**\n     * The maximum bill amount (in dollars) the user can approve If not included, the user has no max limit\n     */\n    maxApprovalAmount: number | null | undefined;\n\n    /**\n     * The user's report group. If not included, set to the default report group\n     */\n    reportGroupId: number | null | undefined;\n\n    /**\n     * List of user group ids If null or not passed the groups a user assigned to will NOT be modified If an empty list the user will be removed from all groups\n     */\n    userGroups: Array<number> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class UserEditRequest {\n    /**\n     * The user code. This is the user name that is used on sign-in <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 65 characters</span>\n     */\n    userCode: string | null ;\n\n    /**\n     * The user's full name <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 32 characters</span>\n     */\n    fullName: string | null ;\n\n    /**\n     * The user's password. Password is not changed if this field is empty. Not available for users whose identity is managed externally. <span class='property-internal'>Must be between 0 and 128 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    password: string | null | undefined;\n\n    /**\n     * The user's email address <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 128 characters</span>\n     */\n    email: string | null ;\n\n    /**\n     * Update a user to one multiple topmost cost center ids The CostCenterIds must be in the editing user's topmost <span class='property-internal'>Required</span> <span class='property-internal'>Cannot be Empty</span>\n     */\n    topmostCostCenterIds: Array<number> | null ;\n\n    /**\n     * Update a user to one or multiple topmost place ids The PlaceIds must be in the editing user's topmost <span class='property-internal'>Required</span> <span class='property-internal'>Cannot be Empty</span>\n     */\n    topmostPlaceIds: Array<number> | null ;\n\n    /**\n     * Update a user to one or multiple topmost EsaSpace ids The EsaSpaceIds must be in the editing user's topmost <span class='property-internal'>Required</span> <span class='property-internal'>Cannot be Empty</span>\n     */\n    topmostSpaceIds: Array<number> | null ;\n\n    /**\n     * Update a user to one or multiple topmost collection ids The CollectionIds must be in the editing user's topmost <span class='property-internal'>Required</span> <span class='property-internal'>Cannot be Empty</span>\n     */\n    topmostCollectionIds: Array<number> | null ;\n\n    /**\n     * Whether or not the user signs in using active directory. This is used for install client only <span class='property-internal'>Required</span>\n     */\n    activeDirectory: boolean | null ;\n\n    /**\n     * Whether or not the user is active <span class='property-internal'>Required</span>\n     */\n    active: boolean | null ;\n\n    /**\n     * Days until the user's password expires Must be set to 0 for users whose identity is managed externally. <span class='property-internal'>Required</span>\n     */\n    passwordExpirationInterval: number | null ;\n\n    /**\n     * Force the user's password to have a minimum of 8 characters,  containing at least 1 uppercase, 1 lowercase, 1 number, and 1 symbol. Must be set to false for users whose identity is managed externally. <span class='property-internal'>Required</span>\n     */\n    strongPassword: boolean | null ;\n\n    /**\n     * Force the user to change their password on next login.  Must be set to false for users whose identity is managed externally. <span class='property-internal'>Required</span>\n     */\n    forcePasswordChange: boolean | null ;\n\n    /**\n     * The user's role <span class='property-internal'>Required</span>\n     */\n    userRoleId: number | null ;\n\n    /**\n     * The maximum bill amount (in dollars) the user can approve If not included, the user has no max limit <span class='property-internal'>Required (defined)</span>\n     */\n    maxApprovalAmount: number | null | undefined;\n\n    /**\n     * The user's report group. If not included, set to the default report group <span class='property-internal'>Required</span>\n     */\n    reportGroupId: number | null ;\n\n    /**\n     * List of user group ids If null or not passed the groups a user assigned to will NOT be modified If an empty list the user will be removed from all groups <span class='property-internal'>Required (defined)</span>\n     */\n    userGroups: Array<number> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class UserGroupChild {\n    /**\n     * The user group identifier\n     */\n    userGroupId: number | null | undefined;\n\n    /**\n     * The user group name\n     */\n    userGroupName: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class UserGroupRequest {\n    /**\n     * The user group name <span class='property-internal'>Must be between 0 and 64 characters</span> <span class='property-internal'>Required</span>\n     */\n    userGroupName: string | null ;\n\n    /**\n     * A description of the user group <span class='property-internal'>Must be between 0 and 255 characters</span>\n     */\n    description: string | null | undefined;\n\n    /**\n     * List of system user ids in the group Hidden users cannot be added to groups On PUT request, if this property is null or not passed the group membership will not change To remove all members pass an empty list\n     */\n    members: Array<number> | null | undefined;\n\n    /**\n     * List of new users to create and add to the group The email cannot be currently used by another user Users are created as limited users with the Contact role and default topmost\n     */\n    newUserEmail: Array<string> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class UserGroupResponse {\n    /**\n     * The user group identifier\n     */\n    userGroupId: number | null | undefined;\n\n    /**\n     * The user group name\n     */\n    userGroupName: string | null | undefined;\n\n    /**\n     * The user group description\n     */\n    description: string | null | undefined;\n\n    /**\n     * The number of users in this group\n     */\n    memberCount: number | null | undefined;\n\n    /**\n     * The last time a member was inserted, updated, or deleted from the group\n     */\n    lastUpdated: Date | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { UserChildWithEmail } from './userChildWithEmail';\n\n\nexport class UserGroupWithMembers {\n    /**\n     * List of user group members\n     */\n    members: Array<UserChildWithEmail> | null | undefined;\n\n    /**\n     * The user group identifier\n     */\n    userGroupId: number | null | undefined;\n\n    /**\n     * The user group name\n     */\n    userGroupName: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { ReportGroupChildResponse } from './reportGroupChildResponse';\nimport { SystemUserRoleChild } from './systemUserRoleChild';\nimport { TopmostCollection } from './topmostCollection';\nimport { TopmostCostCenter } from './topmostCostCenter';\nimport { TopmostPlace } from './topmostPlace';\nimport { TopmostSpace } from './topmostSpace';\nimport { UserGroupChild } from './userGroupChild';\n\n\nexport class UserResponse {\n    /**\n     * User Identifier\n     */\n    userId: number | null | undefined;\n\n    /**\n     * User Code\n     */\n    userCode: string | null | undefined;\n\n    /**\n     * Full name of the user\n     */\n    fullName: string | null | undefined;\n\n    userRole: SystemUserRoleChild | null | undefined;\n\n    costCenter: TopmostCostCenter | null | undefined;\n\n    place: TopmostPlace | null | undefined;\n\n    collection: TopmostCollection | null | undefined;\n\n    /**\n     * Is this a active directory user?\n     */\n    activeDirectory: boolean | null | undefined;\n\n    /**\n     * User is active or inactive\n     */\n    active: boolean | null | undefined;\n\n    /**\n     * Email ID of the user\n     */\n    email: string | null | undefined;\n\n    /**\n     * Days until password expires\n     */\n    passwordExpirationInterval: number | null | undefined;\n\n    /**\n     * Does user need a strong password - at least 8 character long, one upper case, one number, one special char\n     */\n    strongPassword: boolean | null | undefined;\n\n    /**\n     * Should the user be forced to change password on next login\n     */\n    forcePasswordChange: boolean | null | undefined;\n\n    /**\n     * Max Total cost of bill this user is allowed to approve\n     */\n    maxApprovalAmount: number | null | undefined;\n\n    /**\n     * last time the user logged in\n     */\n    lastLogin: Date | null | undefined;\n\n    reportGroup: ReportGroupChildResponse | null | undefined;\n\n    /**\n     * The external identifier for the user. This is only used for federated login.\n     */\n    externalUserId: string | null | undefined;\n\n    /**\n     * List of groups a user is a part of\n     */\n    userGroups: Array<UserGroupChild> | null | undefined;\n\n    space: TopmostSpace | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class UserRoleRequest {\n    /**\n     * The user role id to set for the user <span class='property-internal'>Required (defined)</span>\n     */\n    userRoleId: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class UsersAndRoles {\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    licenseIndex: Array<number> | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class UsersAndRolesClassPermission {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class UsersAndUserGroups {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class UsersAndUserGroupsClassPermission {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class UtilityPlatform {\n    /**\n     * Date Release file Url used to record Data access release\n     */\n    dataReleaseFileUrl: string | null | undefined;\n\n    /**\n     * Identifier for the Utility Platform Provider Organization\n     */\n    utilityPlatformProviderKey: string | null | undefined;\n\n    /**\n     * Name of the Utility Platform Provider Organization\n     */\n    utilityPlatformProviderInfo: string | null | undefined;\n\n    /**\n     * Flag to indicate if Data Release requests from this Utility Provider can be declined\n     */\n    canDeclineDataRelease: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AddressChild } from './addressChild';\nimport { CommodityChild } from './commodityChild';\nimport { DataAccessReleaseStatus } from './dataAccessReleaseStatus';\nimport { MeterTypeChild } from './meterTypeChild';\nimport { MostRecentAggregate } from './mostRecentAggregate';\n\n\nexport class UtilityPlatformMeter {\n    meterAddress: AddressChild | null | undefined;\n\n    dataAccessReleaseStatus: DataAccessReleaseStatus | null | undefined;\n\n    mostRecentAggregate: MostRecentAggregate | null | undefined;\n\n    /**\n     * The meter identifier\n     */\n    meterId: number | null | undefined;\n\n    /**\n     * The meter code\n     */\n    meterCode: string | null | undefined;\n\n    /**\n     * The meter info\n     */\n    meterInfo: string | null | undefined;\n\n    meterType: MeterTypeChild | null | undefined;\n\n    commodity: CommodityChild | null | undefined;\n\n    /**\n     * Indicates whether the Meter is Active\n     */\n    active: boolean | null | undefined;\n\n    /**\n     * Indicates whether the meter is a calculated meter\n     */\n    isCalculatedMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the meter is an ESA calculated meter\n     */\n    isEsaCalculatedMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the meter is a parent of a split\n     */\n    isSplitParentMeter: boolean | null | undefined;\n\n    /**\n     * Indicates whether the meter is a child of a split\n     */\n    isSplitChildMeter: boolean | null | undefined;\n\n    /**\n     * The meter's current serial number\n     */\n    serialNumber: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { ValueWithUnit } from './valueWithUnit';\n\n\n/**\n * General purpose value comparison DTO\n */\nexport class ValueComparison {\n    currentValue: ValueWithUnit | null | undefined;\n\n    previousValue: ValueWithUnit | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { UnitChild } from './unitChild';\n\n\n/**\n * General purpose value DTO\n */\nexport class ValueWithUnit {\n    /**\n     * Value\n     */\n    value: number | null | undefined;\n\n    unit: UnitChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class VemChatCreate {\n    /**\n     * VEM Chat name / chat title. This is a required field. When AllowChatTitleGeneration = true, this field will be used as fallback if title generation fails. <span class='property-internal'>Must be between 0 and 50 characters</span> <span class='property-internal'>Required</span>\n     */\n    vemChatInfo: string | null ;\n\n    /**\n     * Allow automatic generation of chat title based on the first prompt.\n     */\n    allowChatTitleGeneration: boolean | null | undefined;\n\n    /**\n     * First prompt / user message to start the chat. This is a required field when AllowChatTitleGeneration = true. It's ignored otherwise. <span class='property-internal'>Required when AllowChatTitleGeneration is set to True, case sensitive.</span>\n     */\n    firstPrompt: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class VemChatEdit {\n    /**\n     * VEM Chat name / chat title <span class='property-internal'>Must be between 0 and 50 characters</span> <span class='property-internal'>Required</span>\n     */\n    vemChatInfo: string | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class VemChatMessageCreate {\n    /**\n     * VEM chat message content <span class='property-internal'>Required</span>\n     */\n    content: string | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class VemChatMessageResponse {\n    /**\n     * The identifier for the VEM chat message\n     */\n    vemChatMessageId: number | null | undefined;\n\n    /**\n     * Full message content\n     */\n    content: string | null | undefined;\n\n    /**\n     * Date/time offset representing when VEM chat message was sent\n     */\n    createdDate: Date | null | undefined;\n\n    /**\n     * VEM Chat message role. 1-User, 2-Assistant, 3-Error. <span class='property-internal'>Must be a valid value for VemChatMessageRole: User = 1, Assistant = 2, Error = 3</span>\n     */\n    vemChatMessageRole: VemChatMessageResponse.VemChatMessageRoleEnum;\n\n}\nexport namespace VemChatMessageResponse {\n    export enum VemChatMessageRoleEnum {\n        NUMBER_1 = <any> 1,\n        NUMBER_2 = <any> 2,\n        NUMBER_3 = <any> 3\n    }\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class VemChatResponse {\n    /**\n     * The identifier for the VEM chat\n     */\n    vemChatId: number | null | undefined;\n\n    /**\n     * VEM Chat name / chat title\n     */\n    vemChatInfo: string | null | undefined;\n\n    /**\n     * Date/time offset representing when VEM chat was created\n     */\n    createdDate: Date | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class VendorAuditEnable {\n    /**\n     * True to allow all vendor accounts' bills to be audited False to exclude all vendor accounts' bills from being audited <span class='property-internal'>Required (defined)</span>\n     */\n    auditEnabled: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CostCategoryResponse } from './costCategoryResponse';\n\n\nexport class VendorBillAccountChargeSplitSettingsResponse {\n    /**\n     * The vendor identifier\n     */\n    vendorId: number | null | undefined;\n\n    /**\n     * The vendor code that the caption maps to\n     */\n    vendorCode: string | null | undefined;\n\n    /**\n     * The vendor info that the caption maps to\n     */\n    vendorInfo: string | null | undefined;\n\n    /**\n     * Split account charges with a bill line type assigned the cost categories\n     */\n    costCategories: Array<CostCategoryResponse> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class VendorChild {\n    /**\n     * The vendor identifier\n     */\n    vendorId: number | null | undefined;\n\n    /**\n     * The vendor code\n     */\n    vendorCode: string | null | undefined;\n\n    /**\n     * The vendor info\n     */\n    vendorInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CommodityChild } from './commodityChild';\nimport { VendorChild } from './vendorChild';\n\n\nexport class VendorContractResponse {\n    /**\n     * The contract identifier\n     */\n    contractId: number | null | undefined;\n\n    /**\n     * The contract code\n     */\n    contractCode: string | null | undefined;\n\n    /**\n     * The contract info\n     */\n    contractInfo: string | null | undefined;\n\n    /**\n     * The start date of the contract\n     */\n    startDate: Date | null | undefined;\n\n    /**\n     * The expiration date of the contract\n     */\n    expirationDate: Date | null | undefined;\n\n    /**\n     * Contract notes\n     */\n    notes: string | null | undefined;\n\n    vendor: VendorChild | null | undefined;\n\n    commodity: CommodityChild | null | undefined;\n\n    /**\n     * The date a reminder will be sent for the contract expiration\n     */\n    renewalReminderDate: Date | null | undefined;\n\n    /**\n     * Is this a Green Energy contract\n     */\n    isGreenEnergy: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { UnitChild } from './unitChild';\nimport { VendorDigestActualYearlyResponseCommodityData } from './vendorDigestActualYearlyResponseCommodityData';\nimport { VendorDigestActualYearlyResponseResults } from './vendorDigestActualYearlyResponseResults';\n\n\nexport class VendorDigestActualYearlyResponse {\n    /**\n     * The vendor code\n     */\n    vendorCode: string | null | undefined;\n\n    /**\n     * The vendor info\n     */\n    vendorInfo: string | null | undefined;\n\n    /**\n     * The vendor identifier\n     */\n    vendorId: number | null | undefined;\n\n    globalUseUnit: UnitChild | null | undefined;\n\n    costUnit: UnitChild | null | undefined;\n\n    /**\n     * The date and time the data was updated\n     */\n    updated: Date | null | undefined;\n\n    /**\n     * An array of yearly data\n     */\n    results: Array<VendorDigestActualYearlyResponseResults> | null | undefined;\n\n    /**\n     * An array of yearly data per commodity\n     */\n    commodities: Array<VendorDigestActualYearlyResponseCommodityData> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { UnitChild } from './unitChild';\nimport { VendorDigestActualYearlyResponseCommodityResults } from './vendorDigestActualYearlyResponseCommodityResults';\n\n\nexport class VendorDigestActualYearlyResponseCommodityData {\n    /**\n     * The commodity code\n     */\n    commodityCode: string | null | undefined;\n\n    /**\n     * The commodity info\n     */\n    commodityInfo: string | null | undefined;\n\n    /**\n     * The commodity identifier\n     */\n    commodityId: number | null | undefined;\n\n    commonUseUnit: UnitChild | null | undefined;\n\n    costUnit: UnitChild | null | undefined;\n\n    /**\n     * An array of yearly data\n     */\n    results: Array<VendorDigestActualYearlyResponseCommodityResults> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class VendorDigestActualYearlyResponseCommodityResults {\n    /**\n     * year\n     */\n    year: string | null | undefined;\n\n    /**\n     * Total Cost\n     */\n    totalCost: number | null | undefined;\n\n    /**\n     * Common Use\n     */\n    commonUse: number | null | undefined;\n\n    /**\n     * Common Use Unit Cost\n     */\n    commonUseUnitCost: number | null | undefined;\n\n    /**\n     * Global Use\n     */\n    globalUse: number | null | undefined;\n\n    /**\n     * Global Use Unit Cost\n     */\n    globalUseUnitCost: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class VendorDigestActualYearlyResponseResults {\n    /**\n     * Year\n     */\n    year: string | null | undefined;\n\n    /**\n     * Total Cost\n     */\n    totalCost: number | null | undefined;\n\n    /**\n     * Global Use\n     */\n    globalUse: number | null | undefined;\n\n    /**\n     * Global Use Unit Cost\n     */\n    globalUseUnitCost: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AddressChild } from './addressChild';\n\n\nexport class VendorEdit {\n    /**\n     * An array of vendor code aliases. Vendor alias cannot match an existing vendor code or another alias in the system.  All alias entries will replace existing ones. Empty or null array will remove all existing aliases. Maximum of 5 aliases, each with a maximum length of 50 characters. <span class='property-internal'>Max length of 5</span> <span class='property-internal'>Required</span>\n     */\n    vendorCodeAliases: Array<string> | null ;\n\n    /**\n     * The vendor code <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 16 characters</span>\n     */\n    vendorCode: string | null ;\n\n    /**\n     * The vendor info <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 50 characters</span>\n     */\n    vendorInfo: string | null ;\n\n    /**\n     * The vendor's website <span class='property-internal'>Must be between 0 and 255 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    website: string | null | undefined;\n\n    /**\n     * The vendor's email address <span class='property-internal'>Must be between 0 and 128 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    email: string | null | undefined;\n\n    /**\n     * The vendor's phone number <span class='property-internal'>Must be between 0 and 50 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    phoneNumber: string | null | undefined;\n\n    address: AddressChild | null | undefined;\n\n    /**\n     * A description of the vendor <span class='property-internal'>Must be between 0 and 4000 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    vendorDescription: string | null | undefined;\n\n    /**\n     * File name referencing a PDF document that contains the customer's consent to be represented to the vendor. The document must have already been uploaded to temporary filestore storage (see POST FileStore in API docs). <span class='property-internal'>Must be between 0 and 260 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    consentToRepresent: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AddressChild } from './addressChild';\n\n\nexport class VendorRequest {\n    /**\n     * The vendor code <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 16 characters</span>\n     */\n    vendorCode: string | null ;\n\n    /**\n     * The vendor info <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 50 characters</span>\n     */\n    vendorInfo: string | null ;\n\n    /**\n     * The vendor's website <span class='property-internal'>Must be between 0 and 255 characters</span>\n     */\n    website: string | null | undefined;\n\n    /**\n     * The vendor's email address <span class='property-internal'>Must be between 0 and 128 characters</span>\n     */\n    email: string | null | undefined;\n\n    /**\n     * The vendor's phone number <span class='property-internal'>Must be between 0 and 50 characters</span>\n     */\n    phoneNumber: string | null | undefined;\n\n    address: AddressChild | null | undefined;\n\n    /**\n     * A description of the vendor <span class='property-internal'>Must be between 0 and 4000 characters</span>\n     */\n    vendorDescription: string | null | undefined;\n\n    /**\n     * File name referencing a PDF document that contains the customer's consent to be represented to the vendor. The document must have already been uploaded to temporary filestore storage (see POST FileStore in API docs). <span class='property-internal'>Must be between 0 and 260 characters</span>\n     */\n    consentToRepresent: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { AddressChild } from './addressChild';\nimport { RateChildResponse } from './rateChildResponse';\nimport { UserChild } from './userChild';\n\n\nexport class VendorResponse {\n    /**\n     * The vendor identifier\n     */\n    vendorId: number | null | undefined;\n\n    /**\n     * The vendor code\n     */\n    vendorCode: string | null | undefined;\n\n    /**\n     * An array of vendor code aliases\n     */\n    vendorCodeAliases: Array<string> | null | undefined;\n\n    /**\n     * The vendor info\n     */\n    vendorInfo: string | null | undefined;\n\n    address: AddressChild | null | undefined;\n\n    /**\n     * The vendor's edi code\n     */\n    ediCode: string | null | undefined;\n\n    /**\n     * The pay days\n     */\n    payDays: number | null | undefined;\n\n    createdBy: UserChild | null | undefined;\n\n    /**\n     * The date and time the vendor was created\n     */\n    createdDate: Date | null | undefined;\n\n    modifiedBy: UserChild | null | undefined;\n\n    /**\n     * The date and time of the most recent modification\n     */\n    modifiedDate: Date | null | undefined;\n\n    /**\n     * The vendor's website\n     */\n    website: string | null | undefined;\n\n    /**\n     * The vendor's email address\n     */\n    email: string | null | undefined;\n\n    /**\n     * The vendor's phone number\n     */\n    phoneNumber: string | null | undefined;\n\n    /**\n     * The vendor's rates\n     */\n    rates: Array<RateChildResponse> | null | undefined;\n\n    /**\n     * A description of the vendor\n     */\n    vendorDescription: string | null | undefined;\n\n    /**\n     * If there are settings configured to split account charges for this vendor This will only be true when the setting applies to all accounts for this vendor\n     */\n    splitAccountChargesConfigured: boolean | null | undefined;\n\n    /**\n     * A link to the document containing the customer's consent for us to represent them to the vendor\n     */\n    consentToRepresent: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class VendorTypeChild {\n    /**\n     * The vendor type identifier\n     */\n    vendorTypeId: number | null | undefined;\n\n    /**\n     * The vendor type code\n     */\n    vendorTypeCode: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { UDFFieldChild } from './uDFFieldChild';\n\n\nexport class VendorUDFResponse {\n    /**\n     * The vendor identifier\n     */\n    vendorId: number | null | undefined;\n\n    /**\n     * The vendor code\n     */\n    vendorCode: string | null | undefined;\n\n    /**\n     * The vendor info\n     */\n    vendorInfo: string | null | undefined;\n\n    /**\n     * An array of user-defined fields (UDFs)\n     */\n    udfs: Array<UDFFieldChild> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class Vendors {\n    /**\n     * \n     */\n    create: boolean | null | undefined;\n\n    /**\n     * \n     */\n    edit: boolean | null | undefined;\n\n    /**\n     * \n     */\n    delete: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class VendorsAndRatesModule {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class VendorsAndRatesModuleClassPermission {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class VendorsClassPermission {\n    /**\n     * \n     */\n    create: boolean | null | undefined;\n\n    /**\n     * \n     */\n    edit: boolean | null | undefined;\n\n    /**\n     * \n     */\n    delete: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class VersionChild {\n    /**\n     * \n     */\n    versionId: number | null | undefined;\n\n    /**\n     * \n     */\n    beginDate: Date | null | undefined;\n\n    /**\n     * \n     */\n    endDate: Date | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class VersionResponse {\n    /**\n     * \n     */\n    versionId: number | null | undefined;\n\n    /**\n     * \n     */\n    beginDate: Date | null | undefined;\n\n    /**\n     * \n     */\n    endDate: Date | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { SafeWaitHandle } from './safeWaitHandle';\n\n\nexport class WaitHandle {\n    safeWaitHandle: SafeWaitHandle | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class WatticsDataPoint {\n    /**\n     * The identifier for a SmartAnalytics (Wattics) meter\n     */\n    watticsDataPointId: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class WatticsDataPointChild {\n    /**\n     * The identifier for a SmartAnalytics (Wattics) meter\n     */\n    watticsDataPointId: number | null | undefined;\n\n    /**\n     * The name for a SmartAnalytics (Wattics) meter\n     */\n    watticsDataPointInfo: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class WatticsDataPointRequest {\n    /**\n     * The identifier for a SmartAnalytics (Wattics) meter Set to null to remove the link <span class='property-internal'>Required (defined)</span>\n     */\n    watticsDataPointId: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class WatticsSite {\n    /**\n     * The identifier for a SmartAnalytics (Wattics) site\n     */\n    watticsSiteId: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class WatticsSiteRequest {\n    /**\n     * The identifier for a SmartAnalytics (Wattics) site Set to null to remove the link <span class='property-internal'>Required (defined)</span>\n     */\n    watticsSiteId: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { WeatherStationSummary } from './weatherStationSummary';\n\n\nexport class WeatherImportResult {\n    /**\n     * The begin date of the weather data that was imported\n     */\n    beginDate: Date | null | undefined;\n\n    /**\n     * The end date of the weather data that was imported\n     */\n    endDate: Date | null | undefined;\n\n    /**\n     * List of weather stations and the number of readings that were imported for each\n     */\n    weatherStationSummaries: Array<WeatherStationSummary> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class WeatherImportSettings {\n    /**\n     * List of weather station codes for which to import data If omitted or empty, weather data will be imported for all weather stations which are assigned to buildings\n     */\n    weatherStationCodes: Array<string> | null | undefined;\n\n    /**\n     * The begin date for the weather data Readings will be imported from this date through the current date If omitted or empty, weather data will be imported for the past 31 days\n     */\n    beginDate: Date | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PermissionProduct } from './permissionProduct';\n\n\nexport class WeatherSettings {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n    /**\n     * \n     */\n    permissionId: number | null | undefined;\n\n    /**\n     * \n     */\n    permissionCode: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionName: string | null | undefined;\n\n    /**\n     * \n     */\n    description: string | null | undefined;\n\n    /**\n     * \n     */\n    permissionCategoryName: string | null | undefined;\n\n    /**\n     * \n     */\n    isLicensed: boolean | null | undefined;\n\n    /**\n     * \n     */\n    products: Array<PermissionProduct> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class WeatherSettingsClassPermission {\n    /**\n     * \n     */\n    view: boolean | null | undefined;\n\n    /**\n     * \n     */\n    manage: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class WeatherStationChild {\n    /**\n     * Weather Station Id\n     */\n    stationId: number | null | undefined;\n\n    /**\n     * Weather Station Code\n     */\n    stationCode: string | null | undefined;\n\n    /**\n     * Weather Station Name\n     */\n    stationInfo: string | null | undefined;\n\n    /**\n     * City the weather station is located\n     */\n    city: string | null | undefined;\n\n    /**\n     * State the weather station is located\n     */\n    state: string | null | undefined;\n\n    /**\n     * Country the weather station is located\n     */\n    country: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { ChannelChild } from './channelChild';\n\n\nexport class WeatherStationResponse {\n    /**\n     * ID of the weather station\n     */\n    stationId: number | null | undefined;\n\n    /**\n     * Weather station code\n     */\n    stationCode: string | null | undefined;\n\n    /**\n     * Weather station info\n     */\n    stationInfo: string | null | undefined;\n\n    /**\n     * Code of the base weather station Will be null if not linked\n     */\n    baseStationCode: string | null | undefined;\n\n    channel: ChannelChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class WeatherStationSummary {\n    /**\n     * Begin date for this weather station May differ from the begin date provided by the user if the most recent weather reading for this station was earlier.\n     */\n    beginDate: Date | null | undefined;\n\n    /**\n     * Earliest reading date imported for this weather station May differ from the begin date provided by the user if the most recent weather reading available for this station was later.\n     */\n    earliestReadingDate: Date | null | undefined;\n\n    /**\n     * Weather station ID\n     */\n    weatherStationId: number | null | undefined;\n\n    /**\n     * Weather station code\n     */\n    weatherStationCode: string | null | undefined;\n\n    /**\n     * Weather station name\n     */\n    weatherStationName: string | null | undefined;\n\n    /**\n     * Source weather station code (if any)\n     */\n    baseWeatherStationCode: string | null | undefined;\n\n    /**\n     * Number of readings imported\n     */\n    numberOfReadingsImported: number | null | undefined;\n\n    /**\n     * Number of readings failed to import\n     */\n    numberOfFailedReadings: number | null | undefined;\n\n    /**\n     * Channel ID\n     */\n    channelId: number | null | undefined;\n\n    /**\n     * Channel code\n     */\n    channelCode: string | null | undefined;\n\n    /**\n     * Channel interval in seconds\n     */\n    channelIntervalInSeconds: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class WebCaptureAccountResponse {\n    /**\n     * \n     */\n    webCaptureAccountId: number | null | undefined;\n\n    /**\n     * \n     */\n    billCaptureClientCode: string | null | undefined;\n\n    /**\n     * \n     */\n    accountNumber: string | null | undefined;\n\n    /**\n     * \n     */\n    status: string | null | undefined;\n\n    /**\n     * \n     */\n    statusDetail: string | null | undefined;\n\n    /**\n     * \n     */\n    providerName: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { WebCaptureAccountResponse } from './webCaptureAccountResponse';\nimport { WebCapturePartnerResponse } from './webCapturePartnerResponse';\n\n\nexport class WebCaptureCredentialDetailsResponse {\n    /**\n     * \n     */\n    webCaptureAccounts: Array<WebCaptureAccountResponse> | null | undefined;\n\n    /**\n     * \n     */\n    webCaptureCredentialId: number | null | undefined;\n\n    webCapturePartner: WebCapturePartnerResponse | null | undefined;\n\n    /**\n     * \n     */\n    billCaptureClientCode: string | null | undefined;\n\n    /**\n     * \n     */\n    status: string | null | undefined;\n\n    /**\n     * \n     */\n    statusDetail: string | null | undefined;\n\n    /**\n     * \n     */\n    website: string | null | undefined;\n\n    /**\n     * \n     */\n    username: string | null | undefined;\n\n    /**\n     * \n     */\n    isActive: boolean | null | undefined;\n\n    /**\n     * \n     */\n    totalAccounts: number | null | undefined;\n\n    /**\n     * \n     */\n    providerName: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { WebCapturePartnerResponse } from './webCapturePartnerResponse';\n\n\nexport class WebCaptureCredentialResponse {\n    /**\n     * \n     */\n    webCaptureCredentialId: number | null | undefined;\n\n    webCapturePartner: WebCapturePartnerResponse | null | undefined;\n\n    /**\n     * \n     */\n    billCaptureClientCode: string | null | undefined;\n\n    /**\n     * \n     */\n    status: string | null | undefined;\n\n    /**\n     * \n     */\n    statusDetail: string | null | undefined;\n\n    /**\n     * \n     */\n    website: string | null | undefined;\n\n    /**\n     * \n     */\n    username: string | null | undefined;\n\n    /**\n     * \n     */\n    isActive: boolean | null | undefined;\n\n    /**\n     * \n     */\n    totalAccounts: number | null | undefined;\n\n    /**\n     * \n     */\n    providerName: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class WebCapturePartnerResponse {\n    /**\n     * \n     */\n    webCapturePartnerId: number | null | undefined;\n\n    /**\n     * \n     */\n    webCapturePartnerInfo: string | null | undefined;\n\n    /**\n     * \n     */\n    webCapturePartnerCode: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class WebhookCreateRequest {\n    /**\n     * The name of the webhook <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 64 characters</span>\n     */\n    webhookName: string | null ;\n\n    /**\n     * The description for the webhook\n     */\n    webhookDescription: string | null | undefined;\n\n    /**\n     * The type of event that will trigger the webhook <span class='property-internal'>Required</span>\n     */\n    webhookEventTypeId: number | null ;\n\n    /**\n     * List of email addresses. Each recipient in this list will receive an email when a webhook fails or gets disabled <span class='property-internal'>Required</span> <span class='property-internal'>Cannot be Empty</span>\n     */\n    mailingList: Array<string> | null ;\n\n    /**\n     * The URL to be invoked by the webhook <span class='property-internal'>Required</span>\n     */\n    url: string | null ;\n\n    /**\n     * The encryption secret. <span class='property-internal'>Required</span>\n     */\n    secret: string | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\n/**\n * DTO for Custom Actions\n */\nexport class WebhookCustomAction {\n    /**\n     * The list of ids on which to perform the custom action <span class='property-internal'>Cannot be Empty</span> <span class='property-internal'>Required (defined)</span>\n     */\n    ids: Array<number> | null | undefined;\n\n    /**\n     * The webhook identifier that represents the custom action <span class='property-internal'>Required</span>\n     */\n    webhookId: number | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class WebhookEditRequest {\n    /**\n     * The webhook activation status (true=Active, false=Inactive) <span class='property-internal'>Required</span>\n     */\n    active: boolean | null ;\n\n    /**\n     * The name of the webhook <span class='property-internal'>Required</span> <span class='property-internal'>Must be between 0 and 64 characters</span>\n     */\n    webhookName: string | null ;\n\n    /**\n     * The description for the webhook <span class='property-internal'>Required (defined)</span>\n     */\n    webhookDescription: string | null | undefined;\n\n    /**\n     * The type of event that will trigger the webhook <span class='property-internal'>Required</span>\n     */\n    webhookEventTypeId: number | null ;\n\n    /**\n     * List of email addresses. Each recipient in this list will receive an email when a webhook fails or gets disabled <span class='property-internal'>Required</span> <span class='property-internal'>Cannot be Empty</span>\n     */\n    mailingList: Array<string> | null ;\n\n    /**\n     * The URL to be invoked by the webhook <span class='property-internal'>Required</span>\n     */\n    url: string | null ;\n\n    /**\n     * The encryption secret. <span class='property-internal'>Required</span>\n     */\n    secret: string | null ;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class WebhookEventTypeChild {\n    /**\n     * The identifier for the webhook event type\n     */\n    webhookEventTypeId: number | null | undefined;\n\n    /**\n     * The name of the webhook event type\n     */\n    webhookEventTypeName: string | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { UserChild } from './userChild';\n\n\nexport class WebhookLogDetailsResponse {\n    /**\n     * The URL that the webhook is configured for <span class='property-internal'>Required (defined)</span>\n     */\n    url: string | null | undefined;\n\n    /**\n     * The request that was sent from the webhook (headers and body) <span class='property-internal'>Required (defined)</span>\n     */\n    request: string | null | undefined;\n\n    /**\n     * The response that was received from the configured url (headers and body) <span class='property-internal'>Required (defined)</span>\n     */\n    response: string | null | undefined;\n\n    /**\n     * The HTTP status code that was received from the configured url 0 indicates no response was received from the configured url <span class='property-internal'>Required (defined)</span>\n     */\n    result: string | null | undefined;\n\n    user: UserChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { UserChild } from './userChild';\n\n\nexport class WebhookLogResponse {\n    /**\n     * The identifier of the webhook log\n     */\n    webhookLogId: number | null | undefined;\n\n    /**\n     * The date and time that the webhook was fired\n     */\n    requestTimestamp: Date | null | undefined;\n\n    /**\n     * The HTTP status code that was received from the configured url 0 indicates no response was received from the configured url\n     */\n    result: string | null | undefined;\n\n    user: UserChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { UserChild } from './userChild';\nimport { WebhookEventTypeChild } from './webhookEventTypeChild';\n\n\nexport class WebhookResponse {\n    /**\n     * The identifier of the webhook\n     */\n    webhookId: number | null | undefined;\n\n    /**\n     * The name of the webhook\n     */\n    webhookName: string | null | undefined;\n\n    /**\n     * The description of the webhook\n     */\n    webhookDescription: string | null | undefined;\n\n    createdBy: UserChild | null | undefined;\n\n    /**\n     * The date and time the webhook was created\n     */\n    createdDate: Date | null | undefined;\n\n    /**\n     * List of email addresses. Each recipient in this list will receive an email when a webhook fails or gets disabled\n     */\n    mailingList: Array<string> | null | undefined;\n\n    /**\n     * The percentage of success for the webhook\n     */\n    successRate: number | null | undefined;\n\n    /**\n     * The activation status of the webhook\n     */\n    webhookStatus: string | null | undefined;\n\n    /**\n     * Locked webhooks cannot be edited. Locked webhooks will also NOT be automatically disabled on 10 consecutive failures\n     */\n    locked: boolean | null | undefined;\n\n    /**\n     * The URL to be invoked by the webhook\n     */\n    url: string | null | undefined;\n\n    /**\n     * The encryption secret\n     */\n    secret: string | null | undefined;\n\n    eventType: WebhookEventTypeChild | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { FilterEdit } from './filterEdit';\n\n\nexport class WidgetCreate {\n    /**\n     * Widget identifier <span class='property-internal'>Required</span>\n     */\n    widgetId: number | null ;\n\n    /**\n     * Dashboard row <span class='property-internal'>Required</span>\n     */\n    row: number | null ;\n\n    /**\n     * Dashboard column <span class='property-internal'>Required</span>\n     */\n    col: number | null ;\n\n    /**\n     * Widget height <span class='property-internal'>Required</span>\n     */\n    height: number | null ;\n\n    /**\n     * Widget width <span class='property-internal'>Required</span>\n     */\n    width: number | null ;\n\n    /**\n     * Personal Widget title <span class='property-internal'>Must be between 0 and 600 characters</span> <span class='property-internal'>Required</span>\n     */\n    title: string | null ;\n\n    /**\n     * Personal Widget description <span class='property-internal'>Must be between 0 and 600 characters</span>\n     */\n    userWidgetDescription: string | null | undefined;\n\n    /**\n     * Widget filters\n     */\n    filters: Array<FilterEdit> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { FilterEdit } from './filterEdit';\n\n\nexport class WidgetEdit {\n    /**\n     * Specific Widget identifier <span class='property-internal'>Required</span>\n     */\n    specificWidgetId: number | null ;\n\n    /**\n     * Personal Widget title <span class='property-internal'>Must be between 0 and 600 characters</span> <span class='property-internal'>Required</span>\n     */\n    title: string | null ;\n\n    /**\n     * Dashboard row <span class='property-internal'>Required (defined)</span>\n     */\n    row: number | null | undefined;\n\n    /**\n     * Dashboard column <span class='property-internal'>Required (defined)</span>\n     */\n    col: number | null | undefined;\n\n    /**\n     * Widget height <span class='property-internal'>Required (defined)</span>\n     */\n    height: number | null | undefined;\n\n    /**\n     * Widget width <span class='property-internal'>Required (defined)</span>\n     */\n    width: number | null | undefined;\n\n    /**\n     * Personal Widget description <span class='property-internal'>Must be between 0 and 600 characters</span> <span class='property-internal'>Required (defined)</span>\n     */\n    userWidgetDescription: string | null | undefined;\n\n    /**\n     * Widget filters <span class='property-internal'>Required (defined)</span>\n     */\n    filters: Array<FilterEdit> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { FilterResponse } from './filterResponse';\n\n\nexport class WidgetResponse {\n    /**\n     * Widget identifier\n     */\n    widgetId: number | null | undefined;\n\n    /**\n     * Widget info\n     */\n    widgetInfo: string | null | undefined;\n\n    /**\n     * Widget description\n     */\n    description: string | null | undefined;\n\n    /**\n     * Widget tags\n     */\n    tags: Array<string> | null | undefined;\n\n    /**\n     * Widget filters\n     */\n    filters: Array<FilterResponse> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { PeriodRange } from './periodRange';\nimport { UnitChild } from './unitChild';\nimport { WidgetSavingsYearlyResponseCommodityData } from './widgetSavingsYearlyResponseCommodityData';\nimport { WidgetSavingsYearlyResponseResults } from './widgetSavingsYearlyResponseResults';\n\n\nexport class WidgetSavingsYearlyResponse {\n    billingPeriodRange: PeriodRange | null | undefined;\n\n    fiscalPeriodRange: PeriodRange | null | undefined;\n\n    /**\n     * Program to Date BATCC (Baseline Adjusted to Current Conditions) Use\n     */\n    allTimeBATCCUse: number | null | undefined;\n\n    /**\n     * Program to Date Use\n     */\n    allTimeUse: number | null | undefined;\n\n    /**\n     * Program to Date Savings Use = allTimeBATCCUse - allTimeUse\n     */\n    allTimeSavingsUse: number | null | undefined;\n\n    /**\n     * Program to Date BATCC (Baseline Adjusted to Current Conditions) Total Cost\n     */\n    allTimeBATCCTotalCost: number | null | undefined;\n\n    /**\n     * Program to Date Savings Total Cost\n     */\n    allTimeTotalCost: number | null | undefined;\n\n    /**\n     * Program to Date Savings Total Cost = allTimeBATCCTotalCost - allTimeTotalCost\n     */\n    allTimeSavingsTotalCost: number | null | undefined;\n\n    /**\n     * An array of savings yearly data\n     */\n    results: Array<WidgetSavingsYearlyResponseResults> | null | undefined;\n\n    /**\n     * The date and time the data was updated\n     */\n    updated: Date | null | undefined;\n\n    useUnit: UnitChild | null | undefined;\n\n    costUnit: UnitChild | null | undefined;\n\n    /**\n     * An array of savings yearly data per commodity\n     */\n    commodities: Array<WidgetSavingsYearlyResponseCommodityData> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { CommodityChildWithCategory } from './commodityChildWithCategory';\nimport { WidgetSavingsYearlyResponseResults } from './widgetSavingsYearlyResponseResults';\n\n\nexport class WidgetSavingsYearlyResponseCommodityData {\n    commodity: CommodityChildWithCategory | null | undefined;\n\n    /**\n     * Program to Date BATCC (Baseline Adjusted to Current Conditions) Use\n     */\n    allTimeBATCCUse: number | null | undefined;\n\n    /**\n     * Program to Date Native Use\n     */\n    allTimeUse: number | null | undefined;\n\n    /**\n     * Program to Date Savings Use = allTimeBATCCUse - allTimeUse\n     */\n    allTimeSavingsUse: number | null | undefined;\n\n    /**\n     * Program to Date BATCC (Baseline Adjusted to Current Conditions) Total Cost\n     */\n    allTimeBATCCTotalCost: number | null | undefined;\n\n    /**\n     * Program to Date Total Cost\n     */\n    allTimeTotalCost: number | null | undefined;\n\n    /**\n     * Program to Date Savings Total Cost = allTimeBATCCTotalCost - allTimeTotalCost\n     */\n    allTimeSavingsTotalCost: number | null | undefined;\n\n    /**\n     * An array of yearly data\n     */\n    results: Array<WidgetSavingsYearlyResponseResults> | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class WidgetSavingsYearlyResponseResults {\n    /**\n     * Year\n     */\n    year: string | null | undefined;\n\n    /**\n     * BATCC (Baseline Adjusted to Current Conditions) Total Cost\n     */\n    batccTotalCost: number | null | undefined;\n\n    /**\n     * Total Cost\n     */\n    totalCost: number | null | undefined;\n\n    /**\n     * Savings Total Cost = BATCCTotalCost - TotalCost\n     */\n    savingsTotalCost: number | null | undefined;\n\n    /**\n     * BATCC (Baseline Adjusted to Current Conditions) Use\n     */\n    batccUse: number | null | undefined;\n\n    /**\n     * Use\n     */\n    use: number | null | undefined;\n\n    /**\n     * Savings Use = BATCCUse - Use\n     */\n    savingsUse: number | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\nexport class WorkflowDisplaySetting {\n    /**\n     * Indicates whether or not to show the Unapproved bill list in Bill Processing\n     */\n    showUnapprovedList: boolean | null | undefined;\n\n    /**\n     * Indicates whether or not to show the Waiting for Export to AP bill list in Bill Processing\n     */\n    showAPExportList: boolean | null | undefined;\n\n    /**\n     * Indicates whether or not to show the Waiting for Export to GL bill list in Bill Processing\n     */\n    showGLExportList: boolean | null | undefined;\n\n    /**\n     * Indicates whether or not to show the Held from Export bill list in Bill Processing\n     */\n    showExportHoldList: boolean | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { ApprovalWorkflowRequestChild } from './approvalWorkflowRequestChild';\nimport { BatchWorkflowChild } from './batchWorkflowChild';\nimport { BillImportWorkflowSettings } from './billImportWorkflowSettings';\nimport { ChargebackWorkflowSettings } from './chargebackWorkflowSettings';\nimport { ExportWorkflowChild } from './exportWorkflowChild';\n\n\nexport class WorkflowSettingsRequest {\n    apExport: ExportWorkflowChild | null | undefined;\n\n    glExport: ExportWorkflowChild | null | undefined;\n\n    paymentExport: ExportWorkflowChild | null | undefined;\n\n    batch: BatchWorkflowChild | null ;\n\n    approval: ApprovalWorkflowRequestChild | null ;\n\n    chargeback: ChargebackWorkflowSettings | null | undefined;\n\n    billImport: BillImportWorkflowSettings | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { ApprovalWorkflowChild } from './approvalWorkflowChild';\nimport { BatchWorkflowSettings } from './batchWorkflowSettings';\nimport { BillImportWorkflowSettings } from './billImportWorkflowSettings';\nimport { ChargebackWorkflowSettings } from './chargebackWorkflowSettings';\nimport { ExportWorkflowChild } from './exportWorkflowChild';\n\n\n/**\n * Workflow settings response\n */\nexport class WorkflowSettingsResponse {\n    batch: BatchWorkflowSettings | null | undefined;\n\n    approval: ApprovalWorkflowChild | null | undefined;\n\n    apExport: ExportWorkflowChild | null | undefined;\n\n    glExport: ExportWorkflowChild | null | undefined;\n\n    paymentExport: ExportWorkflowChild | null | undefined;\n\n    chargeback: ChargebackWorkflowSettings | null | undefined;\n\n    billImport: BillImportWorkflowSettings | null | undefined;\n\n}\n","/**\n * EnergyCAP SDK\n * Document used to generate the EnergyCAP SDK\n *\n * OpenAPI spec version: 8.2604\n * Contact: support@energycap.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n\n/**\n * General purpose year range DTO\n */\nexport class YearRange {\n    /**\n     * The start year for the range\n     */\n    startYear: number | null | undefined;\n\n    /**\n     * The end year for the range\n     */\n    endYear: number | null | undefined;\n\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Configuration } from './configuration';\nimport { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';\n\nimport { AccountService } from './api/account.service';\nimport { AccountDigestService } from './api/accountDigest.service';\nimport { AccountMeterService } from './api/accountMeter.service';\nimport { AccrualService } from './api/accrual.service';\nimport { ActivityService } from './api/activity.service';\nimport { AdminService } from './api/admin.service';\nimport { ApiService } from './api/api.service';\nimport { ApiKeyService } from './api/apiKey.service';\nimport { AuditService } from './api/audit.service';\nimport { AuthenticationService } from './api/authentication.service';\nimport { BatchService } from './api/batch.service';\nimport { BillService } from './api/bill.service';\nimport { BillAccountChargeSplitService } from './api/billAccountChargeSplit.service';\nimport { BillSplitService } from './api/billSplit.service';\nimport { BillViewService } from './api/billView.service';\nimport { BudgetService } from './api/budget.service';\nimport { CalculatedBillService } from './api/calculatedBill.service';\nimport { ChannelService } from './api/channel.service';\nimport { ChargebackEngineService } from './api/chargebackEngine.service';\nimport { ChargebackTaskService } from './api/chargebackTask.service';\nimport { ChargebackWorkflowService } from './api/chargebackWorkflow.service';\nimport { CollectionService } from './api/collection.service';\nimport { CommodityService } from './api/commodity.service';\nimport { CommodityCategoryService } from './api/commodityCategory.service';\nimport { CommodityDigestService } from './api/commodityDigest.service';\nimport { CostCategoryService } from './api/costCategory.service';\nimport { CostCenterService } from './api/costCenter.service';\nimport { CostCenterDigestService } from './api/costCenterDigest.service';\nimport { CountryService } from './api/country.service';\nimport { CustomerService } from './api/customer.service';\nimport { DashboardService } from './api/dashboard.service';\nimport { DataPointService } from './api/dataPoint.service';\nimport { EmissionRecordService } from './api/emissionRecord.service';\nimport { EmissionSourceService } from './api/emissionSource.service';\nimport { EnergyManagerService } from './api/energyManager.service';\nimport { EnergyProjectService } from './api/energyProject.service';\nimport { EnergyStarService } from './api/energyStar.service';\nimport { EnvironmentService } from './api/environment.service';\nimport { EsaChannelService } from './api/esaChannel.service';\nimport { EsaPlaceService } from './api/esaPlace.service';\nimport { EsaReadingService } from './api/esaReading.service';\nimport { ExportService } from './api/export.service';\nimport { FileStoreService } from './api/fileStore.service';\nimport { FilterService } from './api/filter.service';\nimport { FlagService } from './api/flag.service';\nimport { FormulaService } from './api/formula.service';\nimport { GHGService } from './api/gHG.service';\nimport { GeneralLedgerService } from './api/generalLedger.service';\nimport { HierarchyService } from './api/hierarchy.service';\nimport { ImportService } from './api/import.service';\nimport { ListService } from './api/list.service';\nimport { MeService } from './api/me.service';\nimport { MeterService } from './api/meter.service';\nimport { MeterDigestService } from './api/meterDigest.service';\nimport { MeterGroupService } from './api/meterGroup.service';\nimport { MeterGroupDigestService } from './api/meterGroupDigest.service';\nimport { NotificationService } from './api/notification.service';\nimport { ObservationService } from './api/observation.service';\nimport { ObservationTypeService } from './api/observationType.service';\nimport { PlaceService } from './api/place.service';\nimport { PlaceBenchmarkService } from './api/placeBenchmark.service';\nimport { PlaceDigestService } from './api/placeDigest.service';\nimport { PlaceGroupService } from './api/placeGroup.service';\nimport { PlaceGroupDigestService } from './api/placeGroupDigest.service';\nimport { PostalCodeService } from './api/postalCode.service';\nimport { PrimaryUseService } from './api/primaryUse.service';\nimport { RateService } from './api/rate.service';\nimport { RateDigestService } from './api/rateDigest.service';\nimport { ReportService } from './api/report.service';\nimport { ReportBuilderService } from './api/reportBuilder.service';\nimport { ReportDistributionService } from './api/reportDistribution.service';\nimport { RouteService } from './api/route.service';\nimport { SavingsService } from './api/savings.service';\nimport { ScheduleService } from './api/schedule.service';\nimport { SearchService } from './api/search.service';\nimport { SentinelService } from './api/sentinel.service';\nimport { SetupService } from './api/setup.service';\nimport { SummaryAccountService } from './api/summaryAccount.service';\nimport { SystemUserService } from './api/systemUser.service';\nimport { TagService } from './api/tag.service';\nimport { TaskService } from './api/task.service';\nimport { TemplateService } from './api/template.service';\nimport { TimeZoneService } from './api/timeZone.service';\nimport { UDFService } from './api/uDF.service';\nimport { UnitService } from './api/unit.service';\nimport { UserGroupService } from './api/userGroup.service';\nimport { UserRoleService } from './api/userRole.service';\nimport { UtilityPlatformService } from './api/utilityPlatform.service';\nimport { VendorService } from './api/vendor.service';\nimport { VendorDigestService } from './api/vendorDigest.service';\nimport { WeatherStationService } from './api/weatherStation.service';\nimport { WebCaptureCredentialService } from './api/webCaptureCredential.service';\nimport { WebhookService } from './api/webhook.service';\nimport { WidgetService } from './api/widget.service';\nimport { WorkflowService } from './api/workflow.service';\nimport { SpanClasspropertyinfoPaginatedPaginatedspanService } from './api/spanClasspropertyinfoPaginatedPaginatedspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsAccountingSettingsManagespanService } from './api/spanClasspropertyinfoPermissionPermissionsAccountingSettingsManagespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsAccountsCreatespanService } from './api/spanClasspropertyinfoPermissionPermissionsAccountsCreatespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsAccountsDeletespanService } from './api/spanClasspropertyinfoPermissionPermissionsAccountsDeletespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsAccountsEditspanService } from './api/spanClasspropertyinfoPermissionPermissionsAccountsEditspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsAccountsViewspanService } from './api/spanClasspropertyinfoPermissionPermissionsAccountsViewspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsAccrualSettingsManagespanService } from './api/spanClasspropertyinfoPermissionPermissionsAccrualSettingsManagespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsAccrualSettingsRunspanService } from './api/spanClasspropertyinfoPermissionPermissionsAccrualSettingsRunspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsAccrualSettingsViewspanService } from './api/spanClasspropertyinfoPermissionPermissionsAccrualSettingsViewspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsApplicationSettingsManagespanService } from './api/spanClasspropertyinfoPermissionPermissionsApplicationSettingsManagespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsApplicationSettingsViewspanService } from './api/spanClasspropertyinfoPermissionPermissionsApplicationSettingsViewspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsApproveBillsManagespanService } from './api/spanClasspropertyinfoPermissionPermissionsApproveBillsManagespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsBaselineEngineRunspanService } from './api/spanClasspropertyinfoPermissionPermissionsBaselineEngineRunspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsBillCAPtureViewspanService } from './api/spanClasspropertyinfoPermissionPermissionsBillCAPtureViewspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsBillWorkflowSettingsManagespanService } from './api/spanClasspropertyinfoPermissionPermissionsBillWorkflowSettingsManagespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsBillWorkflowSettingsViewspanService } from './api/spanClasspropertyinfoPermissionPermissionsBillWorkflowSettingsViewspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsBillsAndBatchesCreatespanService } from './api/spanClasspropertyinfoPermissionPermissionsBillsAndBatchesCreatespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsBillsAndBatchesDeletespanService } from './api/spanClasspropertyinfoPermissionPermissionsBillsAndBatchesDeletespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsBillsAndBatchesEditspanService } from './api/spanClasspropertyinfoPermissionPermissionsBillsAndBatchesEditspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsBillsAndBatchesManagespanService } from './api/spanClasspropertyinfoPermissionPermissionsBillsAndBatchesManagespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsBillsAndBatchesViewspanService } from './api/spanClasspropertyinfoPermissionPermissionsBillsAndBatchesViewspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsBudgetsAndBudgetVersionsCreatespanService } from './api/spanClasspropertyinfoPermissionPermissionsBudgetsAndBudgetVersionsCreatespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsBudgetsAndBudgetVersionsDeletespanService } from './api/spanClasspropertyinfoPermissionPermissionsBudgetsAndBudgetVersionsDeletespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsBudgetsAndBudgetVersionsEditspanService } from './api/spanClasspropertyinfoPermissionPermissionsBudgetsAndBudgetVersionsEditspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsBudgetsAndBudgetVersionsViewspanService } from './api/spanClasspropertyinfoPermissionPermissionsBudgetsAndBudgetVersionsViewspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsBuildingAndMeterGroupsCreatespanService } from './api/spanClasspropertyinfoPermissionPermissionsBuildingAndMeterGroupsCreatespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsBuildingAndMeterGroupsDeletespanService } from './api/spanClasspropertyinfoPermissionPermissionsBuildingAndMeterGroupsDeletespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsBuildingAndMeterGroupsEditspanService } from './api/spanClasspropertyinfoPermissionPermissionsBuildingAndMeterGroupsEditspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsBuildingsAndOrganizationsCreatespanService } from './api/spanClasspropertyinfoPermissionPermissionsBuildingsAndOrganizationsCreatespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsBuildingsAndOrganizationsDeletespanService } from './api/spanClasspropertyinfoPermissionPermissionsBuildingsAndOrganizationsDeletespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsBuildingsAndOrganizationsEditspanService } from './api/spanClasspropertyinfoPermissionPermissionsBuildingsAndOrganizationsEditspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsBuildingsAndOrganizationsViewspanService } from './api/spanClasspropertyinfoPermissionPermissionsBuildingsAndOrganizationsViewspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsChargebackReversalsManagespanService } from './api/spanClasspropertyinfoPermissionPermissionsChargebackReversalsManagespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsChargebacksManagespanService } from './api/spanClasspropertyinfoPermissionPermissionsChargebacksManagespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsChargebacksModuleViewspanService } from './api/spanClasspropertyinfoPermissionPermissionsChargebacksModuleViewspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsChargebacksRunspanService } from './api/spanClasspropertyinfoPermissionPermissionsChargebacksRunspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsCollectionsCreatespanService } from './api/spanClasspropertyinfoPermissionPermissionsCollectionsCreatespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsCollectionsDeletespanService } from './api/spanClasspropertyinfoPermissionPermissionsCollectionsDeletespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsCollectionsEditspanService } from './api/spanClasspropertyinfoPermissionPermissionsCollectionsEditspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsCollectionsViewspanService } from './api/spanClasspropertyinfoPermissionPermissionsCollectionsViewspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsCostCentersCreatespanService } from './api/spanClasspropertyinfoPermissionPermissionsCostCentersCreatespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsCostCentersDeletespanService } from './api/spanClasspropertyinfoPermissionPermissionsCostCentersDeletespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsCostCentersEditspanService } from './api/spanClasspropertyinfoPermissionPermissionsCostCentersEditspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsCostCentersViewspanService } from './api/spanClasspropertyinfoPermissionPermissionsCostCentersViewspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsDashboardAndMapsModuleViewspanService } from './api/spanClasspropertyinfoPermissionPermissionsDashboardAndMapsModuleViewspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsDistributedReportsSettingsManagespanService } from './api/spanClasspropertyinfoPermissionPermissionsDistributedReportsSettingsManagespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsENERGYSTARSubmissionsManagespanService } from './api/spanClasspropertyinfoPermissionPermissionsENERGYSTARSubmissionsManagespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsENERGYSTARSubmissionsRunspanService } from './api/spanClasspropertyinfoPermissionPermissionsENERGYSTARSubmissionsRunspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsEmissionsSourcesCreatespanService } from './api/spanClasspropertyinfoPermissionPermissionsEmissionsSourcesCreatespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsEmissionsSourcesDeletespanService } from './api/spanClasspropertyinfoPermissionPermissionsEmissionsSourcesDeletespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsEmissionsSourcesEditspanService } from './api/spanClasspropertyinfoPermissionPermissionsEmissionsSourcesEditspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsEmissionsSourcesViewspanService } from './api/spanClasspropertyinfoPermissionPermissionsEmissionsSourcesViewspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsEnergyManagerModuleViewspanService } from './api/spanClasspropertyinfoPermissionPermissionsEnergyManagerModuleViewspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsExportBillsRunspanService } from './api/spanClasspropertyinfoPermissionPermissionsExportBillsRunspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsExportHoldManagespanService } from './api/spanClasspropertyinfoPermissionPermissionsExportHoldManagespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsFacilityProjectsCreatespanService } from './api/spanClasspropertyinfoPermissionPermissionsFacilityProjectsCreatespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsFacilityProjectsDeletespanService } from './api/spanClasspropertyinfoPermissionPermissionsFacilityProjectsDeletespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsFacilityProjectsEditspanService } from './api/spanClasspropertyinfoPermissionPermissionsFacilityProjectsEditspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsFlaggedItemsManagespanService } from './api/spanClasspropertyinfoPermissionPermissionsFlaggedItemsManagespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsFlaggedItemsViewspanService } from './api/spanClasspropertyinfoPermissionPermissionsFlaggedItemsViewspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsGlobalCostAvoidanceSettingsManagespanService } from './api/spanClasspropertyinfoPermissionPermissionsGlobalCostAvoidanceSettingsManagespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsGlobalCostAvoidanceSettingsViewspanService } from './api/spanClasspropertyinfoPermissionPermissionsGlobalCostAvoidanceSettingsViewspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsGroupsAndBenchmarksModuleViewspanService } from './api/spanClasspropertyinfoPermissionPermissionsGroupsAndBenchmarksModuleViewspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsIntervalDataManagespanService } from './api/spanClasspropertyinfoPermissionPermissionsIntervalDataManagespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsLicenseFeatureIntervalDataAnalysisViewspanService } from './api/spanClasspropertyinfoPermissionPermissionsLicenseFeatureIntervalDataAnalysisViewspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsManuallyAdjustSavingsManagespanService } from './api/spanClasspropertyinfoPermissionPermissionsManuallyAdjustSavingsManagespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsMeterSavingsSettingsManagespanService } from './api/spanClasspropertyinfoPermissionPermissionsMeterSavingsSettingsManagespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsMeterSavingsSettingsViewspanService } from './api/spanClasspropertyinfoPermissionPermissionsMeterSavingsSettingsViewspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsMetersCreatespanService } from './api/spanClasspropertyinfoPermissionPermissionsMetersCreatespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsMetersDeletespanService } from './api/spanClasspropertyinfoPermissionPermissionsMetersDeletespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsMetersEditspanService } from './api/spanClasspropertyinfoPermissionPermissionsMetersEditspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsMetersViewspanService } from './api/spanClasspropertyinfoPermissionPermissionsMetersViewspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsMoveAccountsBetweenVendorsManagespanService } from './api/spanClasspropertyinfoPermissionPermissionsMoveAccountsBetweenVendorsManagespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsMoveExistingBillsManagespanService } from './api/spanClasspropertyinfoPermissionPermissionsMoveExistingBillsManagespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsPublicDashboardsOrMapsManagespanService } from './api/spanClasspropertyinfoPermissionPermissionsPublicDashboardsOrMapsManagespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsRateSchedulesCreatespanService } from './api/spanClasspropertyinfoPermissionPermissionsRateSchedulesCreatespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsRateSchedulesDeletespanService } from './api/spanClasspropertyinfoPermissionPermissionsRateSchedulesDeletespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsRateSchedulesEditspanService } from './api/spanClasspropertyinfoPermissionPermissionsRateSchedulesEditspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsRecordsCreatespanService } from './api/spanClasspropertyinfoPermissionPermissionsRecordsCreatespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsRecordsDeletespanService } from './api/spanClasspropertyinfoPermissionPermissionsRecordsDeletespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsRecordsEditspanService } from './api/spanClasspropertyinfoPermissionPermissionsRecordsEditspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsRecordsViewspanService } from './api/spanClasspropertyinfoPermissionPermissionsRecordsViewspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsReportAdministratorManagespanService } from './api/spanClasspropertyinfoPermissionPermissionsReportAdministratorManagespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsReportGroupsManagespanService } from './api/spanClasspropertyinfoPermissionPermissionsReportGroupsManagespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsReportsRunspanService } from './api/spanClasspropertyinfoPermissionPermissionsReportsRunspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsRolesManagespanService } from './api/spanClasspropertyinfoPermissionPermissionsRolesManagespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsSavingsAdjustmentsManagespanService } from './api/spanClasspropertyinfoPermissionPermissionsSavingsAdjustmentsManagespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsSavingsAdjustmentsViewspanService } from './api/spanClasspropertyinfoPermissionPermissionsSavingsAdjustmentsViewspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsSavingsEngineRunspanService } from './api/spanClasspropertyinfoPermissionPermissionsSavingsEngineRunspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsUnitSystemSettingsManagespanService } from './api/spanClasspropertyinfoPermissionPermissionsUnitSystemSettingsManagespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsUsersAndUserGroupsManagespanService } from './api/spanClasspropertyinfoPermissionPermissionsUsersAndUserGroupsManagespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsUsersAndUserGroupsViewspanService } from './api/spanClasspropertyinfoPermissionPermissionsUsersAndUserGroupsViewspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsVendorsAndRatesModuleViewspanService } from './api/spanClasspropertyinfoPermissionPermissionsVendorsAndRatesModuleViewspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsVendorsCreatespanService } from './api/spanClasspropertyinfoPermissionPermissionsVendorsCreatespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsVendorsDeletespanService } from './api/spanClasspropertyinfoPermissionPermissionsVendorsDeletespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsVendorsEditspanService } from './api/spanClasspropertyinfoPermissionPermissionsVendorsEditspan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsWeatherSettingsManagespanService } from './api/spanClasspropertyinfoPermissionPermissionsWeatherSettingsManagespan.service';\nimport { SpanClasspropertyinfoPermissionPermissionsWeatherSettingsViewspanService } from './api/spanClasspropertyinfoPermissionPermissionsWeatherSettingsViewspan.service';\n\n@NgModule({\n  imports:      [ CommonModule ],\n  declarations: [],\n  exports:      [],\n  providers:    [ provideHttpClient(withInterceptorsFromDi()), AccountService, AccountDigestService, AccountMeterService, AccrualService, ActivityService, AdminService, ApiService, ApiKeyService, AuditService, AuthenticationService, BatchService, BillService, BillAccountChargeSplitService, BillSplitService, BillViewService, BudgetService, CalculatedBillService, ChannelService, ChargebackEngineService, ChargebackTaskService, ChargebackWorkflowService, CollectionService, CommodityService, CommodityCategoryService, CommodityDigestService, CostCategoryService, CostCenterService, CostCenterDigestService, CountryService, CustomerService, DashboardService, DataPointService, EmissionRecordService, EmissionSourceService, EnergyManagerService, EnergyProjectService, EnergyStarService, EnvironmentService, EsaChannelService, EsaPlaceService, EsaReadingService, ExportService, FileStoreService, FilterService, FlagService, FormulaService, GHGService, GeneralLedgerService, HierarchyService, ImportService, ListService, MeService, MeterService, MeterDigestService, MeterGroupService, MeterGroupDigestService, NotificationService, ObservationService, ObservationTypeService, PlaceService, PlaceBenchmarkService, PlaceDigestService, PlaceGroupService, PlaceGroupDigestService, PostalCodeService, PrimaryUseService, RateService, RateDigestService, ReportService, ReportBuilderService, ReportDistributionService, RouteService, SavingsService, ScheduleService, SearchService, SentinelService, SetupService, SummaryAccountService, SystemUserService, TagService, TaskService, TemplateService, TimeZoneService, UDFService, UnitService, UserGroupService, UserRoleService, UtilityPlatformService, VendorService, VendorDigestService, WeatherStationService, WebCaptureCredentialService, WebhookService, WidgetService, WorkflowService, SpanClasspropertyinfoPaginatedPaginatedspanService, SpanClasspropertyinfoPermissionPermissionsAccountingSettingsManagespanService, SpanClasspropertyinfoPermissionPermissionsAccountsCreatespanService, SpanClasspropertyinfoPermissionPermissionsAccountsDeletespanService, SpanClasspropertyinfoPermissionPermissionsAccountsEditspanService, SpanClasspropertyinfoPermissionPermissionsAccountsViewspanService, SpanClasspropertyinfoPermissionPermissionsAccrualSettingsManagespanService, SpanClasspropertyinfoPermissionPermissionsAccrualSettingsRunspanService, SpanClasspropertyinfoPermissionPermissionsAccrualSettingsViewspanService, SpanClasspropertyinfoPermissionPermissionsApplicationSettingsManagespanService, SpanClasspropertyinfoPermissionPermissionsApplicationSettingsViewspanService, SpanClasspropertyinfoPermissionPermissionsApproveBillsManagespanService, SpanClasspropertyinfoPermissionPermissionsBaselineEngineRunspanService, SpanClasspropertyinfoPermissionPermissionsBillCAPtureViewspanService, SpanClasspropertyinfoPermissionPermissionsBillWorkflowSettingsManagespanService, SpanClasspropertyinfoPermissionPermissionsBillWorkflowSettingsViewspanService, SpanClasspropertyinfoPermissionPermissionsBillsAndBatchesCreatespanService, SpanClasspropertyinfoPermissionPermissionsBillsAndBatchesDeletespanService, SpanClasspropertyinfoPermissionPermissionsBillsAndBatchesEditspanService, SpanClasspropertyinfoPermissionPermissionsBillsAndBatchesManagespanService, SpanClasspropertyinfoPermissionPermissionsBillsAndBatchesViewspanService, SpanClasspropertyinfoPermissionPermissionsBudgetsAndBudgetVersionsCreatespanService, SpanClasspropertyinfoPermissionPermissionsBudgetsAndBudgetVersionsDeletespanService, SpanClasspropertyinfoPermissionPermissionsBudgetsAndBudgetVersionsEditspanService, SpanClasspropertyinfoPermissionPermissionsBudgetsAndBudgetVersionsViewspanService, SpanClasspropertyinfoPermissionPermissionsBuildingAndMeterGroupsCreatespanService, SpanClasspropertyinfoPermissionPermissionsBuildingAndMeterGroupsDeletespanService, SpanClasspropertyinfoPermissionPermissionsBuildingAndMeterGroupsEditspanService, SpanClasspropertyinfoPermissionPermissionsBuildingsAndOrganizationsCreatespanService, SpanClasspropertyinfoPermissionPermissionsBuildingsAndOrganizationsDeletespanService, SpanClasspropertyinfoPermissionPermissionsBuildingsAndOrganizationsEditspanService, SpanClasspropertyinfoPermissionPermissionsBuildingsAndOrganizationsViewspanService, SpanClasspropertyinfoPermissionPermissionsChargebackReversalsManagespanService, SpanClasspropertyinfoPermissionPermissionsChargebacksManagespanService, SpanClasspropertyinfoPermissionPermissionsChargebacksModuleViewspanService, SpanClasspropertyinfoPermissionPermissionsChargebacksRunspanService, SpanClasspropertyinfoPermissionPermissionsCollectionsCreatespanService, SpanClasspropertyinfoPermissionPermissionsCollectionsDeletespanService, SpanClasspropertyinfoPermissionPermissionsCollectionsEditspanService, SpanClasspropertyinfoPermissionPermissionsCollectionsViewspanService, SpanClasspropertyinfoPermissionPermissionsCostCentersCreatespanService, SpanClasspropertyinfoPermissionPermissionsCostCentersDeletespanService, SpanClasspropertyinfoPermissionPermissionsCostCentersEditspanService, SpanClasspropertyinfoPermissionPermissionsCostCentersViewspanService, SpanClasspropertyinfoPermissionPermissionsDashboardAndMapsModuleViewspanService, SpanClasspropertyinfoPermissionPermissionsDistributedReportsSettingsManagespanService, SpanClasspropertyinfoPermissionPermissionsENERGYSTARSubmissionsManagespanService, SpanClasspropertyinfoPermissionPermissionsENERGYSTARSubmissionsRunspanService, SpanClasspropertyinfoPermissionPermissionsEmissionsSourcesCreatespanService, SpanClasspropertyinfoPermissionPermissionsEmissionsSourcesDeletespanService, SpanClasspropertyinfoPermissionPermissionsEmissionsSourcesEditspanService, SpanClasspropertyinfoPermissionPermissionsEmissionsSourcesViewspanService, SpanClasspropertyinfoPermissionPermissionsEnergyManagerModuleViewspanService, SpanClasspropertyinfoPermissionPermissionsExportBillsRunspanService, SpanClasspropertyinfoPermissionPermissionsExportHoldManagespanService, SpanClasspropertyinfoPermissionPermissionsFacilityProjectsCreatespanService, SpanClasspropertyinfoPermissionPermissionsFacilityProjectsDeletespanService, SpanClasspropertyinfoPermissionPermissionsFacilityProjectsEditspanService, SpanClasspropertyinfoPermissionPermissionsFlaggedItemsManagespanService, SpanClasspropertyinfoPermissionPermissionsFlaggedItemsViewspanService, SpanClasspropertyinfoPermissionPermissionsGlobalCostAvoidanceSettingsManagespanService, SpanClasspropertyinfoPermissionPermissionsGlobalCostAvoidanceSettingsViewspanService, SpanClasspropertyinfoPermissionPermissionsGroupsAndBenchmarksModuleViewspanService, SpanClasspropertyinfoPermissionPermissionsIntervalDataManagespanService, SpanClasspropertyinfoPermissionPermissionsLicenseFeatureIntervalDataAnalysisViewspanService, SpanClasspropertyinfoPermissionPermissionsManuallyAdjustSavingsManagespanService, SpanClasspropertyinfoPermissionPermissionsMeterSavingsSettingsManagespanService, SpanClasspropertyinfoPermissionPermissionsMeterSavingsSettingsViewspanService, SpanClasspropertyinfoPermissionPermissionsMetersCreatespanService, SpanClasspropertyinfoPermissionPermissionsMetersDeletespanService, SpanClasspropertyinfoPermissionPermissionsMetersEditspanService, SpanClasspropertyinfoPermissionPermissionsMetersViewspanService, SpanClasspropertyinfoPermissionPermissionsMoveAccountsBetweenVendorsManagespanService, SpanClasspropertyinfoPermissionPermissionsMoveExistingBillsManagespanService, SpanClasspropertyinfoPermissionPermissionsPublicDashboardsOrMapsManagespanService, SpanClasspropertyinfoPermissionPermissionsRateSchedulesCreatespanService, SpanClasspropertyinfoPermissionPermissionsRateSchedulesDeletespanService, SpanClasspropertyinfoPermissionPermissionsRateSchedulesEditspanService, SpanClasspropertyinfoPermissionPermissionsRecordsCreatespanService, SpanClasspropertyinfoPermissionPermissionsRecordsDeletespanService, SpanClasspropertyinfoPermissionPermissionsRecordsEditspanService, SpanClasspropertyinfoPermissionPermissionsRecordsViewspanService, SpanClasspropertyinfoPermissionPermissionsReportAdministratorManagespanService, SpanClasspropertyinfoPermissionPermissionsReportGroupsManagespanService, SpanClasspropertyinfoPermissionPermissionsReportsRunspanService, SpanClasspropertyinfoPermissionPermissionsRolesManagespanService, SpanClasspropertyinfoPermissionPermissionsSavingsAdjustmentsManagespanService, SpanClasspropertyinfoPermissionPermissionsSavingsAdjustmentsViewspanService, SpanClasspropertyinfoPermissionPermissionsSavingsEngineRunspanService, SpanClasspropertyinfoPermissionPermissionsUnitSystemSettingsManagespanService, SpanClasspropertyinfoPermissionPermissionsUsersAndUserGroupsManagespanService, SpanClasspropertyinfoPermissionPermissionsUsersAndUserGroupsViewspanService, SpanClasspropertyinfoPermissionPermissionsVendorsAndRatesModuleViewspanService, SpanClasspropertyinfoPermissionPermissionsVendorsCreatespanService, SpanClasspropertyinfoPermissionPermissionsVendorsDeletespanService, SpanClasspropertyinfoPermissionPermissionsVendorsEditspanService, SpanClasspropertyinfoPermissionPermissionsWeatherSettingsManagespanService, SpanClasspropertyinfoPermissionPermissionsWeatherSettingsViewspanService ]\n})\nexport class EnergyCapSdkModule {\n    public static forConfig(configurationFactory: () => Configuration): ModuleWithProviders<EnergyCapSdkModule> {\n        return {\n            ngModule: EnergyCapSdkModule,\n            providers: [ {provide: Configuration, useFactory: configurationFactory}]\n        }\n    }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["RequestMethod","i2.Configuration"],"mappings":"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"}